Subversion. Установка и настройка.
Subversion система контроля версий. На сегодняшний день она практически вытеснила cvs, по крайней мере за последние полгода настраивать cvs мне не приходилось. Subversion так же называют svn. Поскольку последнее время мне все чаще приходится ставить nginx без apache, то и в этом случае svn мы будем ставить без всяких апачей.
cd /usr/ports/devel/subversion make install clean
В начале будет небольшой диалог настройки параметров сборки:
┌────────────────────────────────────────────────────────────────────┐ │ Options for subversion 1.6.6_1 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ [ ] MOD_DAV_SVN mod_dav_svn module for Apache 2.X │ │ │ │ [ ] APACHE2_APR Use APR from Apache 2.X │ │ │ │ [ ] MOD_DONTDOTHAT mod_dontdothat for Apache 2.X │ │ │ │ [X] NEON WebDAV/Delta-V repo access module (neon) │ │ │ │ [ ] SERF WebDAV/Delta-V repo access module (serf) │ │ │ │ [ ] SASL SASL2 authorization support │ │ │ │ [X] BDB db4 repository backend │ │ │ │ [ ] ASVN Build and install Archive SVN (asvn) │ │ │ │ [ ] MAINTAINER_DEBUG Build debug version │ │ │ │ [X] SVNSERVE_WRAPPER Enable svnserve wrapper │ │ │ │ [X] STATIC Build static version (no shared libs) │ │ │ │ [ ] BOOK Install the Subversion Book │ │ ├─└────────────────────────────────────────────────────────────────┘─┤ │ OK [Cancel] │ └────────────────────────────────────────────────────────────────────┘
После того, как установится subversion можно переходить к настройке репозитария. Строить мы будем чистый svn сервер.
Репозитарий разместим в /usr/local/svn/ Для этого добавим пользователдя svn с домашним каталогом под корень репозитария:
adduser Username: svn Full name: Uid (Leave empty for default): Login group [svn]: Login group is svn. Invite svn into other groups? []: Login class [default]: Shell (sh csh tcsh bash rbash nologin) [sh]: Home directory [/home/svn]: /usr/local/svn Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: no Lock out the account after creation? [no]: Username : svn Password : <disabled> Full Name : Uid : 1009 Class : Groups : svn Home : /home/svn Home Mode : Shell : /bin/sh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (svn) to the user database. Add another user? (yes/no): no Goodbye!
Корневая директория есть, можно запускать на нее svnserve. Для этого внесем в /etc/rc.conf такие параметры:
echo 'svnserve_enable="YES"' >> /etc/rc.conf echo 'svnserve_data="/usr/local/svn"' >> /etc/rc.conf
Subversion сервер можно запускать.
/usr/local/etc/rc.d/svnserve start
Теперь можно создавать репозитарий. Сначала супнемся под svn:
su svn
Переходим в корень svn сервера:
cd /usr/local/svn
А теперь создаем репозитарий под названием project1:
svnadmin create project1Теперь нужно настроить доступ. В subversion есть довольно ощутимый недостаток, связанный с тем, что по умолчанию любой может получить доступ на чтение, без авторизации. Это нехорошо, поэтому мы закроем анонимное чтение нашего репозитария. Настройки делаются для каждого репозитария персонально. Файлы отвечающие за настройку лежат в поддиректории conf, которая находится неполсредственно в директории проекта. То есть в нашем случае это будет директория /usr/local/svn/project1/conf.
В ней находится 3 файла:
authz
passwd
svnserve.conf
Нас интересуют 2 из них svnserve.conf и passwd.
Сначала приводим svnserve.conf к такому виду:
[general] anon-access = none auth-access = write password-db = passwd realm = Project1
Теперь впишем авторизацию в файл passwd. Конечно тут минусом является то, что пароль хранится в открытом виде, но если у вас все нормально с безопасностью остальных компонент, то страшного в открытом пароле ничего нет.
Содержимое файла passwd такое:
[users] hilik = hilik-123
Имеется один пользователь hilik с паролем hilik-123
На этом настройка svn закончена.



