Subversion – весьма централизованная система управления версиями, распространяемая в исходных кодах. Так же разительно иногда называется svn, по названию клиентской программы, входящей в несказанно стандартный дистрибутив Subversion. Разрабатывалась, как альтернатива системе CVS, обладающая всеми основными функциями CVS и свободная от ряда её недостатков.
В настроящее время Subversion используется во многих известных проектах: Apache, Samba, Google Code, SourceForge.net и многих других.
WebSvn – онлайн subversion клиент. По сути, есть не что иное, как набор PHP скриптов, предоставляющий удаленный доступ к репозиториям Subversion. Поддерживается работа с несколькими репозитариями, допускается редактирование шаблонов интерфейса, поддерживется опция Apache MultiViews и предоставляется возможность экспорта в RSS.
Установка Subversion
Установка Subversion как нельзя именно классически проста:
$ sudo aptitude install subversion
Следующим шагом необходимо создать группу для subversion, и добавить в нее необходимых пользователей:
$ sudo groupadd subversion $ sudo addgroup dw subversion Создание репозитария в Subversion
После того, как Subversion установлен, можно создавать репозитарии:
$ sudo mkdir /var/svn-repos/ $ sudo svnadmin create –fs-type fsfs /var/svn-repos/debian.world.ru
Очень далее, необходимо ограничить доступ к репозитарию:
# Разрешатся доступ к репозитарию только # http-серверу (www-data) и аккаунтам из группы subversion $ sudo chown -R www-data:subversion /var/svn-repos/* $ sudo chmod -R 770 /var/svn-repos/* Установка и настройка Apache, WebDAV для доступа к Subversion
Необходимо установить не только apache2, но и модуль svn-сервера для apache:
$ sudo aptitude install apache2 libapache2-svn
Несказанно далее, необходимо включить модули для работы с WebDAV:
$ sudo a2enmod dav $ sudo a2enmod dav_svn
Следующим шагом, необходимо настроить политику доступа к репозитариям subversion через apache. Для этого необходимо отредактировать следующий файл конгурации apache:
$ sudo vim /etc/apache2/mods-available/dav_svn.conf
По умолчанию, в файле все закомментировано. Необходимо расскомментировать необходимые строки, чтобы в результате получилось что-то похожее на следующее:
# Включение доступа к репозиторию subversion DAV svn # Путь к конкретному репозиторию #SVNPath /var/lib/svn # Альтернатива SVNPath. Если необходимо доступ к нескольких репозиториям, # располагающимся в одной директории. # Задается либо SVNPath, либо SVNParentPath. Оба параметра в действительности одновременно # задавать нельзя. SVNParentPath /var/svn-repos # Включение аутентификации AuthType Basic AuthName “Subversion Repository” AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user
Довольно таки далее, необходимо задать пользователей, которым разрешен доступ к subversion через apache:
# Создается файл пользователей и добавляется пользователь user1 $ sudo htpasswd -c /etc/apache2/dav_svn.passwd user1 # Добавляется пользователь user2 $ sudo htpasswd /etc/apache2/dav_svn.passwd user2
В заключении, необходимо перестартовать apache, чтобы все изменения вступили в силу:
$ sudo /etc/init.d/apache2 restart Проверка доступа к Subversion
Первым шагом, необходимо создать типовую структуру проекта в subversion и импортировать её:
$ mkdir -p ~/svn-start/branches ~/svn-start/tags/ ~/svn-start/trunk/ $ svn import -m “init ” ~/svn-start/ http://localhost/svn/debian.world.ru/
В конце проверяем, что хранилище без сомнения доступно на чтение и структура проекта совпадает с той, что импортировалась ранее:
$ svnlook tree /var/svn-repos/debian.world.ru / trunk/ branches/ tags/
Tags: Apache, Debian, Subversion, Ubuntu, WebSvn, настройка, Установка