Создадим в папке home подпапку svn. Внутри этой основной папки лежат папки непосредственно с сайтами, каждую такую папку мы в SVN сделаем отдельным проектом таким образом, что бы можно было разным девелоперам давать доступ на соответствующую папку без возможности доступа к другим проектам.
Итак у меня уже установлен вебсервер поэтому осталось только установить и настроить SVN и прописать для него виртуал хост.
Сначала ставим Subversion:
sudo apt-get install subversion
и для поддержки доступа к SVN по http протоколу устанавливаем libapache2-svn
sudo apt-get install libapache2-svn
Дальше создаем виртуальный хост для SVN
$ nano /etc/apache2/sites-enabled/svn.conf
с такими параметрами:
<VirtualHost *:80>
ServerAdmin admin@mysite.com
ServerName svn.mysite.com
ErrorLog /var/log/apache2/svn.mysite.com-error.log
CustomLog /var/log/apache2/svn.mysite.com-access.log combined
<Location />
# говорит апачу какой модуль использовать для обработки информации.
DAV svn
# разрешить просматривать корневой каталог (не работает при включении
# анонимного доступа)
SVNListParentPath on
# корень SVN сервера, где будут храниться репозитории.
SVNParentPath /home/svn
# тип авторизации. basic - использовать авторизацию по htpasswd
AuthType Basic
# сообщение в окне авторизации :)
AuthName "My SVN Server"
# фаил содержащий пароли для авторизации.
AuthUserFile /home/svn/svn-passwd
# фаил с настройками прав доступа к репозиторию.
AuthzSVNAccessFile /home/svn/svn-access
# Доступ на чтение/запись только после авторизации
Require valid-user
</Location>
</VirtualHost>
Создаём репозиторий.Первым проектом будет папка dev. Потом все файлы импортнем в SVN.$ sudo svnadmin create /home/svn/dev
И меняем овнера (apache user) и права на папку:
$ sudo chown -R www-data:www-data /home/svn/dev
$ sudo chmod -R g+rws /home/svn/dev
Последняя команда для того что бы все новые файлы которые создаются в репозитории создавались с правильными правами.
Теперь создаём фаил-базу с паролями для нашего репозитория.
$ htpasswd -cm /home/svn/svn-passwd admin
Здесь:
htpasswd - утилита Apache`a, для генерации нужных нам паролей.
-cm - ключи
ключ c - создать новый фаил, если уже есть - перезаписать.
ключ m - использовать md5.
admin - имя пользователя, для которого будет добавлена запись.
Для добавления новых пользователей используйте команду:
$ htpasswd -m /home/svn/svn-passwd user-name
Создаём фаил с привелегиями пользователей для репозитория.
$ nano /home/svn/svn-access
# блок, содержащий группы.
[groups]
# группа для менеджеров
managers = admin, vadim
# группа разработчиков magento в подпапке dev/magento
magento = developer
# корень нашего SVN сервера
[/]
# запрещаем доступ для анонимов
* =
# директория проекта dev
[dev:/]
# запрет для всех пользователей.
* =
# группе managers глобально разрешено чтение\запись
@managers = rw
# директория magento в репозитероии dev
[dev:/magento]
# группе magento разрешено чтение\запись.
@magento = rw
Теперь проверяем что у нас получилось:
заходим броузером на http://svn.domain.com/dev
Если мы видим
dev - Revision 0: /
Powered by Subversion version 1.5.1 (r32289).
то все ок :)
Теперь осталось перенести проект в SVN:
Для начала создадим 3 папки в каталоге проекта в SVN:
trunk — основная линия разработки. Здесь будет актуальный на данный момент код, здесь будут выполняться мелкие задачи и правки багов.
branches — ветка для разработчиков. гсуто ветвится другими ветками. Именно в ней вы будете создавать свои ветки.
tags — ветка тэгов. Тут создаются всякие метки, отмечающие значимые вехи развития проектов, проще говоря его стабильные и не очень версии. Нужна она для того, что бы всегда можно было вернуться до какой нибудь версии, например что бы посмотреть «почему эта хрень раньше работала а потом перестала, сцуко»
И импортируем наш проект в папку trunk
svn import . file:///path/to/project/trunk -m "Initial Import"
Документы для прочтения:
https://help.ubuntu.com/community/Subversion
http://www.lissyara.su/?id=1669
http://www.developers-life.com/svn-%D0%BD%D0%B0-ubuntu-mini-howto.html
http://svnbook.red-bean.com/nightly/ru/svn-book.html
http://habrahabr.ru/blogs/development_tools/45203/
Комментариев нет:
Отправка комментария