Установка и настройка subversion на FreeBSD 8
Для начала маленький экскурс, что такое subversion. Subversion - свободная централизованная система управления версиями. Ее часто называют SVN. Пришла она на замену уже устаревшей CVS.
Не претендую на первооткрывателя. но все же напишу, как делаю я.
Для начала заходим под root'ом:
# sudo -s (для меня это выглядит так, Вы можете использовать другой вариант) # su -
Далее обновляем порты, если долго этого не делали:
# cd /usr/ports # portsnap fetch extract
Идем по пути к subversion и устанавливаем:
# cd /usr/ports/devel/subversion # make clean install
Ждем полной установки и добавляем строки в /etc/rc.conf :
# echo 'svnserve_enable="YES"' >> /etc/rc.conf # echo 'svnserve_flags="-d --listen-port=3690"' >> /etc/rc.conf # echo 'svnserve_data="/home/svn/repositories"' >> /etc/rc.conf # echo 'svnserve_user="svn"' >> /etc/rc.conf # echo 'svnserve_group="svn"' >> /etc/rc.conf
Собственно создаем папку для репозиториев:
# mkdir /home/svn/repositories
Добавляем группу svn и пользователя в эту группу:
# pw group add svn # pw user add svn -g svn -s /sbin/nologin -d /home/svn/repositories/
Даем права на папку с репозиториями пользователю:
# chown -R svn:svn /home/svn/
Запускаем демона:
# /usr/local/etc/rc.d/svnserve start
Первая часть закончена, теперь настроим один репозиторий для работы.
Первым делом создадим его:
# svnadmin create /home/svn/repositories/myFirstRepository # chown -R svn:svn /home/svn/
Теперь настраиваем доступ к данному репозиторию, идем по пути /home/svn/repositories/myFirstRepository/conf и правим файл svnserve.conf:
# cd /home/svn/repositories/myFirstRepository/conf # vi svnserve.conf
Раскомментируем строки:
anon-access = none auth-access = write password-db = passwd
Теперь создаем пользователей для доступа к данному репозиторию:
# vi passwd
и добавляем туда пользователя и пароль в формате user = passwd
Делаем рестарт демону:
# /usr/local/etc/rc.d/svnserve restart
Репозиторий готов к работе с клиентом.
А теперь расскажу Вам, как сделать красивую структуру в репозитории.
Директория /trunk содержит основную линию разработки проекта, /branches содержит все ветви, /tags содержит все метки.# cd /home/svn/repositories/ # mkdir svntmp # cd svntmp # mkdir trunk branches tags # cd .. # svn import svntmp svn://user@localhost/myFirstRepository -m 'struct create'
После этого мы получим "ровную" структуру для нашего репозитория.
Рекомендую также следующие статьи:

Некоторые вещи можно еще оптимизировать.
1) Файл /usr/local/etc/rc.d/svnserve содержит параметры по умолчанию.
Если на него внимательно посмотреть, то становится понятно, что имеет смысл создать фолдер «/home/svn/repos».
Тогда в /etc/rc.conf придется добавить всего одну строку:
# echo ‘svnserve_enable=»YES»‘ >> /etc/rc.conf
Все остальные буду выставлены по умолчанию.
2) Создать структуру можно тоже чуть-чуть изящнее:
# cd /home/svn/repos/
# mkdir -p /home/svn/repos/svntmp/{trunk, branches, tags}
# svn import svntmp svn://user@localhost/myFirstRepository -m ‘struct create’