1. Установка софта
sudo apt-get install subversion apache2 libapache2-svn
Зависимости подтянутся автоматически.
2. Создание групп безопасности
sudo addgroup subversion
sudo usermod -a -G subversion www-data
3. Создание каталогов
sudo mkdir /home/svn
cd /home/svn
sudo mkdir storage
sudo chown -R www-data:subversion storage
sudo chmod -R g+rws storage
4. Создание репозитория
sudo svnadmin create /home/svn/storage
5. Теперь нужно отредактировать /etc/apache2/mods-available/dav_svn.conf
sudo nano /etc/apache2/mods-available/dav_svn.conf
добавив в него
DAV svn
SVNPath /home/svn/storage
AuthType Basic
AuthName "Subversion repository"
AuthzSVNAccessFile /home/svn/authz.conf
AuthUserFile /home/svn/passwd.conf
Require valid-user
Все готово. Чтобы применить настройки нужно выполнить
apache2ctl restart
Управление пользователями и доступом к подпроектам осуществляется через файлы /home/svn/authz.conf и /home/svn/passwd.conf
Для добавления пользователя нужно выполнить
sudo htpasswd -c /home/svn/passwd.conf user
, где user - имя пользователя.
для управления доступом к подкаталогам репозитория нужно отредактировать файл home/svn/authz.conf
[groups]
developers=devuser1,devuser2
[/]
*=r
[/subdir]
*=
user=r
@sevelopers=rw
В разделе [groups] можно создавать группы пользователей, но этот раздел не обязательный.
Далее создаются разделы с подкаталогами SVN репозитория. Для обозначения уровня доступа используются значения r и w, которые можно комбинировать. Доступ наследуется на подкаталоги, для отмены наследования нужно использовать "*=" (без кавычек). Для использования группы перед её именем нужно ставить собачку "@".
Для доступа к репозиторию по https нужно подключить ssl к apache, но про это я расскажу в следующей статье.