Для работы репозитория 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/ $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/