Янв 19 2010

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 закончена.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Украинская Баннерная Сеть