302  /  328

Система контроля версий

Просмотров: 2749 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 06.02.2017

Организовать сопровождение проекта с помощью системы контроля версий не сложно, если ограничиваться файлами. Для этого можно использовать, например, Mercurial - кроссплатформенную распределённую систему управления версиями, разработанную для эффективной работы с очень большими репозиториями кода. Рекомендуется использовать надстройку с графическим интерфейсом.

Простая схема репозиториев

В схеме три элемента:

  • Центральный репозиторий - место хранения изменений.
  • Копия для разработки - рабочие места для разработчиков, которых может быть несколько.
  • Боевой сайт - конечная цель всех изменений

В ходе работы изменения из Копии для разработки переносятся в Центральный репозиторий, а с него уже на Боевой сайт.

Как ведётся работа

Разработчики изменили какие-то файлы. Ответственное за коммиты лицо использует команду Hg Commit, появляется диалог, в котором отражено где и что изменилось:

Красный текст - удаление, зелёный - добавление. После проверки изменений нажимаем кнопку Commit и изменения отображаются в среде Mercurial:

Далее пишем изменения на Центральный репозиторий и переходим на "боевой" сайт. Изменения на "боевом" сайте вносятся уже из командной строки. Так же необходимо проверить вносились ли изменения на самом "боевом" проекте и, при необходимости, перенести их на Центральный репозиторий и на Копии для разработки.

Примечание: Детально о работе системы контроля версий можно узнать из видео. (С 1 часа 21-ой минуты)

Сложности

Версия ядра на сервере сайта и на сервере Копии для разработчиков могут отличаться. Поэтому ядро исключается из системы контроля версий. Технически это делается набором правил для файла настройки .hgignore.

Ещё одна сложность: файлы ядра изменяются не разработчиками проекта, а приходят "снаружи" в виде обновлений. При этом нельзя просто исключить папку /bitrix/, так как в ней могут находиться в том числе файлы проекта: модули, компоненты, шаблоны сайта и так далее. В итоге файл .hgignore приобретает избыточный вид:

/bitrix/activities/bitrix/
/bitrix/admin
/bitrix/cache
/bitrix/components/bitrix/
/bitrix/gadgets/bitrix
/bitrix/image_uploader
/bitrix/images
/bitrix/js
/bitrix/managed_cache
/bitrix/stack_cache
/bitrix/modules/advertising
/bitrix/modules/bitrix.sitecommunity
...
/bitrix/modules/xdimport
/bitrix/modules/xmpp
/bitrix/modules/.htaccess
/bitrix/otp
/bitrix/sounds
/bitrix/template/
/bitrix/themes
/bitrix/tmp
/bitrix/tools
/bitrix/wizards/bitrix
/bitrix/[^/]*\.php$
/upload
/bitrix/php_interface
/bitrix/panel/
/bitrix/updates/
/bitrix/fonts/

Более того, этот файл нуждается в постоянной корректировке,так как выпускаются новые модули или создаются новые папки в системе. Тогда приходится добавлять их в исключения.

Поддержка папки /local

Чтобы сделать жизнь разработчиков проектов удобнее, в рамках работ по новому ядру D7 с версии главного модуля 14.0.1 основные файлы проекта вынесены из папки /bitrix в папку /local. Это позволит изолировать изменяющиеся файлы проекта от папки продукта. По сути, в исключения достаточно будет добавить одну папку /bitrix.

Какие папки обрабатываются в /local?
  • activities - действия БП;
  • components - компоненты;
  • gadgets - гаджеты рабочего стола;
  • modules - модули;
  • php_interface - init.php, папка user_lang;
  • templates - шаблоны сайтов, шаблоны компонентов, шаблоны страниц.

При обработке папок приоритет всегда у папки /local перед /bitrix. Это означает, что если в /local/templates/ и /bitrix/templates/ будут находиться шаблоны сайта с одинаковым названием, то подключится шаблон из /local.

Примечание: не рекомендуется копировать сущности с одинаковыми именами в обе папки. Более правильное решение - это перенос сущности из одной папки в другую. При копировании система все равно будет корректно работать, но велика вероятность путаницы в работе разработчиков.


30
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии