среда, 26 января 2011 г.

svn серверная часть и администрирование

Subversion -- это клиент-серверное приложение. Расмотрим что же такое сервер.
Для управления репозиториями используется утилита svnadmin. Чтобы создать новый репозиторий нужно написать в поточном каталоге, который выбран под хранение репозиториев:

svnadmin create REPOSNAME


После этого в поточном каталоге появится директория с таким названием, а в ней следующая струтура: conf, dav, db, hooks и locks. Сабвершин работает на движке баз данных Berkeley, и его главным отличием является то, что ревизии фикисируются каталогов, а не отдельных файлов--поэтому невозможна ситуация, когда часть файлов обновилась, а часть нет, и не понятно, что обновлено, а что нет.
Папка conf содержит в себе файл с конфигурацией репозитория.
dav -- аудиторскую информацию.
db --  системные файлы базы данных Berkeley.
hooks -- скрипты, которые реагируют на события(Start-commit, Pre-commit, Post-commit, Pre-revprop-change, Post-revprop-change -- по скольку история не хранится о изменениях совйст репозитория, то последние хуки полезны для создания такой) во время процесса фиксирования верссии.

Чтобы добавить начатый проект в пустой новосозданных репозиторий нужно выполнить с его коренного каталога команду:
svn import -m "Comments"

Чтобы получить рабочую копию с репозитория нужно выполнить комманду:
svn co file:///path/to/repos/in/local/filesystem

Как видно локальный репозиторий отмечается тремя /// это чтобы не путать с сетевым.

Чтобы настроить сетевой доступ к репозиторию нужно использовать Apache со специальными модулями(mod_dav и mod_dav_svn), которые реализует протокол WebDAV
Пример настроек httpd.conf:
<location /svn>
DAV svn
SVNPath /usr/share/repos1
SVNAutoversioning on
AuthName "LXF Subversion Repository"
AuthTypeBasic
</location>

После удачной настройки можно теперь обращаться через протокол http:// к нашему репозиторию:
svn co http://localhost/repos1

Можно переносить репозитории на другой сервер. Пример переноса с полной историей:
svnadmin dump /usr/share/subres > dump.txt

Для получения хелпа по конкретной команде:
svn help co

Комментариев нет:

Отправить комментарий