- Создаем репозиторий:
sudo svnadmin create /home/svn/new_svn_repo
- Устанавливаем владельцев и присваиваем права (2775 на все папки):
sudo chown -R www-data:subversion new_svn_repo sudo chmod -R g+rs new_svn_repo
- В файле /etc/apache2/mods-available/dav_svn.conf добавляем конфигурацию:
<location /svn/new_svn_repo> DAV svn SVNPath /home/svn/new_svn_repo AuthType Basic AuthName "Subversion repository for new_svn_repo" AuthUserFile /home/svn/new_svn_repo/conf/passwd Require valid-user </Location>
- Задаем пароль на репозиторий:
sudo htpasswd -b /home/svn/new_svn_repo/conf/passwd ИМЯ ПАРОЛЬ
- Обязательно перезагружаем апач:
sudo /etc/init.d/apache2 reload
- Далее схема действий такая:
- Загрузить начальную версию проекта в репозиторий (import).
- Получить рабочую копию (checkout).
- Изменить рабочую копию.
- Закоммитить новую версию (commit).
Делаем это так:
Работа с репозиторием
Импорт первой версии в локальный репозиторий:svn import local_dir file:///home/svn/new_svn_repo -m "First Import"
Импорт первой версии в удаленный репозиторий:
svn import local_dir [http|svn|ssh]://remote_host/svn/new_svn_repo -m "First Import"
Получаем рабочую копию из репозитория (2 способа):
svn checkout http://example.com/svn/new_svn_repo
или
svn checkout svn+ssh://example.com/svn/new_svn_repo
Вносим изменения (читай, заливаем туда имеющийся проект, если есть). Затем в корне рабочей копии говорим:
svn add *
И наконец, коммитим:
svn commit
После этого в репозитории находится последняя рабочая копия и ее можно чекаутить в любое место. Нужно обратить внимание, чтобы не заливать конфигурационные файлы в репозиторий. Интересно, как другие решают этот вопрос?
Пока разбирался, наткнулся на тему про репозиторий на gmail. Буду иметь в виду.