===== Настройка сервера системы контроля версий =====
Система поддерживает репозитории Subversion для работы с шаблонами и проектами. Вам потребуется SVN репозиторий для хранения исходного кода проекта.
Subversion - система контроля версий с открытым исходным кодом. Используя Subversion вы можете записывать историю исходных текстов и документов. Он управляет файлами и директориями. Дерево файлов располагается в центральном репозитории. Репозиторий - это обычный сервер, запоминающий каждое изменение файлов и директорий.
Возможности использования Subversion:
* Публичный хостинг (Google Code, Source Forge)
* Приватный хостинг
* Свой сервер
Для небольших проектов предпочтение следует отдать публичному или приватному хостингу.
==== Создание репозитория на сервере ====
Рассмотрим вариант настройки своего сервера для работы с Subversion на примере ОС Ubuntu 12.04 LTS. Linux сервер выбран в связи с тем, что вы можете использовать один сервер как для тестов, так и для хранения исходного кода проекта. Для приложений научных вычислений рекомендуется разрабатывать и тестировать приложения на Linux, в связи с тем, что все ведущие суперкомпьютерные центры используют Linux в качестве основной ОС узлов.
Пакет ''subversion'' доступен в стандартном репозитории ОС Ubuntu. Достаточно установить и настроить его параметры.
Настройка subversion:
1. Создаём группу пользователей ''subversion'' \\
2. Добавляем пользователя от которого вы работаете и пользователя ''www-data'' в группу ''subversion'' \\
3. Создаём каталог для репозиториев:
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
4. Создаём репозиторий
$ sudo svnadmin create /home/svn/myproject
5. Назначаем права на директории
$ cd /home/svn
$ sudo chown -R www-data:subversion myproject
$ sudo chmod -R g+rws myproject
==== Доступ по протоколу HTTP ====
Для доступа по протоколу HTTP у вас должен быть установлен сервер Apache 2.
1. Установить пакет ''libapache2-svn'' \\
2. Настраиваем конфигурацию WebDAV ''/etc/apache2/mods-available/dav_svn.conf''\\
DAV svn
SVNPath /home/svn/myproject
AuthType Basic
AuthName "myproject subversion repository"
AuthUserFile /etc/subversion/passwd
Require valid-user
3. Если вы хотите запретить доступ для анонимных пользователей, использовать конфигурацию:
DAV svn
SVNParentPath /home/svn
SVNListParentPath On
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/subversion/passwd
Require valid-user
4. Перезапустить сервер Apache
sudo service apache2 restart
5. Создать файл паролей для SVN
sudo htpasswd -c /etc/subversion/passwd user_name
6. Если требуется добавить пользователей
sudo htpasswd /etc/subversion/passwd second_user_name
7. Посмотреть список пользователей
cat /etc/subversion/passwd
8. Проверить доступ к серверу
$ svn co http://hostname/svn/myproject myproject --username user_name