Установка и настройка SVN (subversion) под FreeBSD8

05/03/2012
от
Поделиться

Итак, сразу же приступим 🙂 Заходим под root-ом:

cd /usr/ports/*/subversion/

если давно не обновляли порты — обновляем:

portsnap fetch update
rehash

настраиваем subversion:

make config

Конечно же, настройки по вашему усмотрению, далее, запускаем установку…

make install clean

далее, добавляем следующие строки в /etc/rc.conf

echo 'svnserve_enable="YES"' >> /etc/rc.conf
echo 'svnserve_flags="-d --listen-port=3690"' >> /etc/rc.conf
echo 'svnserve_data="/www/svn/repos"' >> /etc/rc.conf
echo 'svnserve_user="svn"' >> /etc/rc.conf
echo 'svnserve_group="svn"' >> /etc/rc.conf

Создаем директорию для репозиториев:

mkdir /www/svn
mkdir /www/svn/repos

Добавляем группу svn и пользователя в эту группу:

pw group add svn
pw user add svn -g svn -s /sbin/nologin -d /www/svn/repos/

Даем права на папку с репозиториями пользователю:

chown -R svn:svn /www/svn/

Запускаем демона:

#Запустится только если в файле /etc/rc.conf будет присутствовать строка svnserve_enable="YES"
/usr/local/etc/rc.d/svnserve start

Теперь настроим один репозиторий для работы. Первым делом, создаем его:

svnadmin create /www/svn/repos/testrepos
chown -R svn:svn /www/svn/

Теперь настраиваем доступ к данному репозиторию, идем по пути /www/svn/repos/testrepos/conf и правим файл svnserve.conf:

cd /www/svn/repos/testrepos/conf
ee svnserve.conf

Раскомментируем строки:

anon-access = none
auth-access = write
password-db = passwd

Теперь создаем пользователей для доступа к данному репозиторию:

ee passwd

и добавляем туда пользователя и пароль в формате user = passwd. Делаем рестарт демону:

/usr/local/etc/rc.d/svnserve restart

Репозиторий готов к работе с клиентом.

Теперь можно и красивую структуру папок организовать. А вообще, добавление файлов в репозиторий можно осуществить с помощью двух команд: add и import.

Директория /trunk содержит основную линию разработки проекта, /branches содержит все ветви, /tags содержит все метки.

cd /www/svn/repos/
mkdir svntmp
cd svntmp
mkdir -p {trunk,branches,tags}
cd ..
#как я уже выше упоминал, import - всего лишь добавляет в репозиторий структуру папок,
#параметр -m - это просто комментарий, при этом сразу же создается новая версия кода (revision)
#осмелюсь же уточнить, что при команде add, версия кода создается только после коммита (commite)
svn import svntmp svn://[email protected]/testrepos -m 'struct create'

После этого мы получим "ровную" структуру для нашего репозитория, и да, директорию svntmp можно удалить. Теперь мы можем импортировать какие-нибудь файлы на виртуальном хосте в наш репозиторий:

svn import /www/sites/100.org.ua/html_public/ svn://[email protected]/testrepos/trunk/

Таким образом, мы импортировали файлы виртуального хоста /www/sites/100.org.ua/public_html/ в папку trunk репозитория testrepos. В выше приведенном примере, мы указали адрес к репозиторию svn://[email protected]/testrepos/trunk/, так вот, если будете подключаться каким-либо svn клиентом к репозиторию — указывайте адрес: svn://[ваш.сайт.ру]/[репозиторий]/trunk

Поделиться

Метки: , , , , , ,

Ответить

Вы должны войти в систему, чтобы оставить комментарий.