SVN - SubVersion

Материал из AlexNook
Перейти к навигацииПерейти к поиску
SubVersion Logo

Subversion - Sub (под-) + version (версия). В то же время, subversion — свержение. Cвободная централизованная система управления версиями.

Subversion разработана специально для замены устаревшей системы CVS, распространённой открытой системы управления версиями. Subversion обладает всеми основными функциями CVS (хотя некоторые из них выполняет другими способами) и свободна от ряда её недостатков.

Установка в Gentoo

Первым делом сверяем USE флаги

[ebuild R ] dev-util/subversion-1.4.6 USE="apache2 berkdb nls python -bash-completion -debug -doc -emacs -extras -java -nowebdav -perl -ruby -svnserve -vim-syntax" 0 kB

, а потом как всегда выполняем:

emerge  subversion. Таким образом СВН ставится в виде модуля апача.

Затем делаем автоконфигурацию СВН

emerge --config

Конфигурирование

Далее в файле конфигурации апача /etc/conf.d/apache2 надо чтобы было прописано

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D PHP5 -D SVN -D SVN_AUTHZ -D DAV -D DAV_FS"

Другие опции добавились после установки php. Так что это всего лишь ориентир на то, что должно быть прописанно в файле.

Настройка доступа к SVN по SSL

Для возможности использования СВН только по протоколу https необходимо сделать следующее:

Переименовать файл 47_mod_dav_svn.conf в 47_mod_dav_svn.ssl-conf.

Далее в файл 40_mod_ssl.conf добавляем в конец следующее:

## Semaphore:

# Configure the path to the mutual exclusion semaphore the SSL engine uses

# internally for inter-process synchronization.

SSLMutex file:/var/run/ssl_mutex

</IfModule>

Include /etc/apache2/modules.d/*.ssl-conf

BrowserMatch "SVN" redirect-carefully

</IfDefine>

# vim: ts=4 filetype=apache

Первая строка добавляет возможность при использовании SSl подгружать файл с конфигурациями СВН (мы его переименовали в 47_mod_dav_svn.ssl-conf). А вторая строка нужная т.к. мы ужесточаем авторизацию ТОЛЬКО по SSL.

Создание репозитария

Для создания репозитария выполняем: Поправить /etc/apache2/modules.d/47_mod_dav_svn.ssl-conf (переименованный нами ранее файл), а именно добавить в него вот такой кусочек кода (по аналогии)

       <Location /svn/16cla>
               DAV svn
               SVNPath /var/svn/16cla
               AuthType Basic
               AuthName "16CLA repository"
               AuthUserFile /var/svn/16cla/conf/svnpasswd
              #<LimitExcept GET PROPFIND OPTIONS REPORT>
               Require valid-user
              #</LimitExcept>
               SSLRequireSSL
       </Location>

Где закомментированные строки разрешают читать СВН анонимам, но писать туда можно только после прохождения авторизации по SSL, а 16CLA - это пример названия репозитария.

Далее командой svnadmin create /var/svn/16cla создаём новый репозитарий (он создаёт следующие пути и файлы:

conf/  dav/  db/  format  hooks/  locks/  README.txt
  1. Потом создаём файл /var/svn/srach/conf/svnpasswd с содержимыми паролей и логинов (sha!)
Можно воспользоваться ссылкой http://www.askapache.com/online-tools/htpasswd-generator/ или утилитой htpasswd.exe (не уверен что правда она ша держит) – как пример строка из этого файла alex:{SHA}YMbSd6i9gd5/3eGSAb+cWKPfCPQ=
  1. Даём права на запись апачу chown -R apache:apache /var/svn/16cla/
  2. Далее рестартим апач
  3. Конектиться к репозитарию можно по адресу http://host.domain:port/svn/repos

Как пример https://srach.no-ip.org/svn/16cla/

Линковка репозитария и веб директории

Ссылки

  1. Официальный сайт Subversion
  2. The Risks of Distributed Version Control Бен Коллинз-Сассман