Subversion – это система контроля версий и изменений в файлах. Она позволяет хранить всю историю изменений контролируемых объектов и восстанавливать данные с любой фиксированной точки. Subvesion активно используется при Web-разработке.
В статье используются CentOS 6.0 и SubVersion 1.6.11
1. Введение
В интернете я видел множество статей о SubVersion описывающих как настроить аутентификацию пользователей, как защитить передаваемые через интернет данные, где лучше расположить репозиторий. Вариантов много, но в подавляющем большинстве случаев схема сводится к рисунку приведенному ниже.
В хранилище Subversion хранятся рабочие данные и все изменения производимые с ними. К этому хранилищу можно получить доступ через файловую систему, через svn+ssh соединение или по протоколу http, поэтому хранилище может располагаться в любом месте. Что бы начать работать с веб-сайтом нужно загрузить в хранилище данные при помощи svn import, и впоследствии восстанавливать нужную версию (ревизию) при помощи svn export. Веб-дизайнер или программист создает копию репозитория при помощи svn checkout, вносит изменения и передает их на сервер командой svn commit, для получения последних изменений используется команда svn update.
Преимущество такого подхода состоит в том что всегда можно восстановить работоспособную версию веб-сайта, а программисты или веб-дизайнеры работают с локальной копией (обычно на ней базируется веб-сайт с другим именем) и не затрагивают основной проект, всегда можно просмотреть кто и какие изменения вносил.
2. Установка
Самая простая часть работы с SubVersion – это установка. Устанавливаем:
[root@svnsrv ~]# yum install subversion
Создаем директорию для репозиториев:
[root@svnsrv /]# mkdir /var/www/svn
Это корневая директория и в ней будут располагаться все наши проекты.
3. Основные приемы работы
Все примеры приводятся на локальном репозитории к которому мы получаем доступ через файловую систему, о настройке и работе через удаленное соединение я расскажу ниже. Документы веб-проекта mysite.ru находятся в папке /sites/mysite.ru/html, создадим для него репозиторий SubVesion:
[root@svnsrv ~]# mkdir -p /var/www/svn/mysite.ru [root@svnsrv ~]# svnadmin create /var/www/svn/mysite.ru
Загружаем данные в репозиторий:
[root@svnsrv ~]# svn import /sites/mysite.ru/html file:///var/www/svn/mysite.ru -m "Startup svn for www.mysite.ru" Adding /sites/mysite.ru/html/index.html Committed revision 1.
После параметра -m [--message] идет пояснение к производимому действию, эт