Настройка SVN сервера

Для работы репозитория svn необходимо иметь настроеный веб-сервер, в примере apache.

Установим svn сервер (на примере в ubuntu, в дальнейшем все примеры приведены для ОС Ubuntu)

#apt-get install subversion libapache2-svn

Где subversion – svn сервер, libapache2-svn– библиотека, которая добавляет модуль апача для его интеграции с svn

Добавляем нового пользователя и группу SVN

#groupadd svn

#useradd -m -d /srv/svn/ -g svn svn

Тут -m -d /srv/svn – автоматическое создание домашнего каталога (флаг - m) и установка этого каталога как базового (-d) В эту папку мы положим конфиги svn и репозитории.

#su – svn

$mkdir /srv/svn/repo/

$mkdir /srv/svn/repo/myproject/

$svnadmin create /srv/svn/repo/myproject/

 Командой svnadmin create /srv/svn/repo/myproject/ создаём новый пустой репозиторий для нашего проекта.

 Теперь создаём конфиги для нашего SVN сервера.

#su - svn

$mkdir /srv/svn/config/
$cd /srv/svn/config/
$touch apache.conf

$touch users-access-file

 Конфиги: 

/srv/svn/config/apache.conf

<Location /svn/>

Allow from all

DAV svn

SVNParentPath /srv/svn/repo/

AuthzSVNAccessFile /srv/svn/config/users-access-file

Require valid-user

AuthType Basic

AuthName «SVN Repositories»

AuthUserFile /srv/svn/config/passwd

</Location>

Что тут:

SVNParentPath /srv/svn/repositories/ – путь к репозиториям

AuthzSVNAccessFile /srv/svn/config/users-access-file – путь к файлу, где указано какого пользователя к какому проекту и с какими правами пускать

AuthUserFile /srv/svn/conf/passwd – в этом файле зашифрованные пароли пользователей.

/srv/svn/config/users-access-file

[/]

* =

[myproject:/]

testuser = rw

Первые две строки запрещают доступ анонимным пользователям к репам (всем * доступ к корню репозиториев ([/]) пустой, т.к. после знака равно мы ничего не указали, но если бы там было r, то это означает чтение; w – запись)

Чтобы пользователь testuser получил туда доступ rw, ему необходимо авторизоваться. Для этого надо установить для него пароль. Создадим файл /srv/svn/passwd при помощи утилиты htpasswd

#su svn

$htpasswd -c -m /srv/svn/config/passwd testuser

Где -m – метод криптования будт использован MD5, -c – означает, что файл надо создать.

Далее в конфиг apache добавляем строчку Include /srv/svn/conf/apache.conf

Теперь делаем reload для apache:

Если всё сделано правильно, то ваши репозитории будут доступны по адресу http://localhost/svn/myproject/

 

unix-way