Задача: установить SVN для разворачивания проектов на Ruby on Rails
Система: FreeBSD 6.3
Subversion version 1.6.2
Вначале понадобится переустановить Apache с поддержкой BDB. Лучше всего сделать так:
cd /usr/ports/www/apache22/
make deinstall clean
make config (выбираем BDB)
make install clean
Устанавливаем саму систему:
cd /usr/ports/devel/subversion
make install clean
Отмечаем пункты MOD_DAV_SVN и BDB.
В /usr/local/etc/apache22/httpd.conf должны появится следующие строчки:
LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so
Создаем репозиторий
Каталог для репозитория
mkdir -p /home/svn/repos
Каталог для вашего проекта
svnadmin create /home/svn/repos/_project_/
_project_ — заменить на имя вашего проекта (каталога).
Импортируем проект в репозиторий
cd /home/_project_/
svn import ./ file:///home/svn/repos/_project_ —message ‘Initial repository layout’
Установим права веб-сервера
chown -R www:www /home/svn/
Добавить в /usr/local/etc/apache22/httpd.conf
<location /svn>
DAV svn
# разрешает выдавать перечень всех доступных хранилищ в папке SVNParentPath
SVNListParentPath on
SVNParentPath /home/svn/repos
SVNPathAuthz off
# включения базовой аутентификации, т.е. имя_пользователя/пароль
AuthType Basic
AuthName «Subversion repository»
AuthUserFile /home/svn/svn-auth-file
# предписывает, что только пользователям, предоставившим правильные имя_пользователя/пароль,
# будет разрешён доступ к URL
Require valid-user
</location>
Теперь, создадим пользователей для доступа к вашему проекту
htpasswd -cmb /home/svn/svn-auth-file _user_ _password_
и добавляем пользователей, так как ключ “-c” указывает на создание файла
htpasswd -mb /home/svn/svn-auth-file _user_ _password_
Где _user_ и _password_ — имя и пароль соответственно.
Разворачиваем проект в нужной папке:
svn checkout http://_domain_/svn/_project_
Действия в Windows
Выше описанные действия носят общий характер. Теперь посмотрим как нужно действовать при разворачивании реального проекта.
Скачиваем клиент TortoiseSVN — http://tortoisesvn.net/downloads. После установки в контекстном меню появится специальный пункт для работы с SVN.
При первом размещении репозитория действия такие:
1. Создаем репозиторий на сервере FreeBSD
Каталог для репозитория
mkdir -p /home/svn/repos
Каталог для вашего проекта
svnadmin create /home/svn/repos/_project_/
_project_ — заменить на имя вашего проекта (каталога).
Установим права веб-сервера
chown -R www:www /home/svn/
2. Импортируем проект в репозиторий
На windows машине щелкаем ПКМ на папке нужного проекта, выбираем пункт «Import» и вводим URL созданного репозитория и пароль доступа.
3. Извлекаем проект из репозитория в нужный каталог на сервере:
Заходим в папку, где будет размещен проект и извлекаем его
svn checkout http://_domain_/svn/_project_
4. Извлекаем проект на windows машину командой из контекстного меню checkout. Это нужно для нормальной работы с репозиторием. Теперь все изменения нужно вносить только в этой папке.
5. Когда произошли дополнения в проекте на windows машине делаем команду commit и все изменения уходят в репозиторий на сервер. На сервере заходим в каталог проекта и делаем команду svn up. Теперь изменения скачались из репозитория в папку проекта на сервере.