В техподдержку часто идут обращения с вопросом "как использовать SVN в связке с Битриксом", в этой статье мы частично ответим на этот вопрос.
Дано: Windows XP, Веб Окружение, Visual SVN Server, Tortoise SVN, редакция Старт Задача: добавить содержимое корневой папки в репозиторий, на примере показать как сделать коммит изменений и убрать изменения из файла. Сразу же оговоримся, что контролировать структуру базы данных мы не будем.
[spoiler]
Первым делом стоит установить Visual SVN Server (http://www.visualsvn.com/server/download/), данный SVN сервер контроля версий был выбран из за того что он бесплатный и простоты использования. После установки, создим репозиторий, дадим ему имя "start". Обязательно укажите галочкой "Create default structure", это позволит поделить структуру репозитория на стабильную версию (trunk) и ответвления branches (нестабильный, сырой код, чаще всего здесь находятся наработки разработчиков).
Затем, необходимо будет добавить пользователя developer (правый клик по папке Users > Create user), заполняете логин и пароль и в свойствах репозитория "start" даете ему права на чтение и запись в данный репозиторий.
Все, с настройкой репозитория покончено. Теперь необходимо поставить Tortoise SVN (http://tortoisesvn.net/) в качестве SVN клиента. После установки он потребует перезагрузиться, перегружаем компьютер и у нас при клике правой кнопкой по любой папке в проводнике появится новые опции. Дальше заходим в папку веб-окружения и правой кнопкой клиакем по папке, где у Вас лежат файлы сайта. Делаем SVN Checkout
и указываем путь до репозитория. В моем случае это "https://voldemar/svn/start/trunk" и путь до папки, в моем случае это "C:\Bitrix Environment\sites_start". Если попросит ввести логин и пароль - вводите логин и пароль пользователя которого вы создали, в нашем случае это developer.
Затем, придется коммитить дистрибутив целиком. Это может занять довольно много времени.
Затем, SVN клиент может подвиснуть не на долго и после этого выдать список файлов для первого коммита. Первым делом уберите из коммита следующие папки "/bitrix/cache","/bitrix/managed_cache","/bitrix/stack_cache","/upload". Так как в них находятся файлы кеша и статические файлы, которые загружаются пользователями на сайт.
Небольшое отступление. В моем случае, приходилось оставлять на ночь машину включенной из-за того, что компьютер слабенький (Celeron 3.0/1GB DDR и медленный жесткий диск). В дистрибутиве старта содержится около 12 тысяч файлов и примерно столько-же папок, чтобы добавить данную структуру в репозиторий понадобится время.
После окончания коммита можете уже начинать полноценную работу с системой контроля версий.
Попробуем внести изменения в очень знакомый всем нам файл "/bitrix/php_inerface/init.php" и закоммитить содержимое папки "php_interface":
и сравним с версией на SVN сервере:
Если все нормально, то коммитим:
Допустим, мы внесли ещё изменения в файлик init.php, но хотим от них отказаться, тогда нам нужно откатить эти изменения:
опять-же, можно сравнить с версией в репозитории:
окно сравнения будет таким же, как и в случае коммита.
Основы работы SVN клиента мы получили.
Какие подводные камни могут быть при интеграции с Битриксом: 1) Не рекомендуется коммитить сразу всю папку "bitrix", так как клиент может на долго подвиснуть из за большого количества файлов (в редакции Старт это около 10000). 2) SVN создает в каждой директории сайта папки ".svn", так что не удивляйтесь, если в списке шаблонов будет отображаться ".svn". Отдел разработки поставлен в известность о существовании данной проблемы. 3) SVN не следит за структурой базы данных. Это можем создавать сложности при обновлениях.
Не всегда. Если удаляется папка + родительская, то SVN считает их пропавшими, а они ведь с новым уже содержимым и при Cleanup оно не может разрешить этот конфликт.
Давно хотел поднять на Linux сервере SVN, теперь будет о чем подумать Ну и не забываем блокировать папочки .svn для доступа из вне, чтоб не случилось казуса
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».