Назначение, терминология, применение
Система управления версиями (СУВ) применяется для облегчения работы с изменяющейся информацией. СУВ позволяет хранить несколько версий одного и того же набора данных, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, создавать копии версий, объединять версии, разрешать конфликты при объединении, контролировать права доступа.
Под набором данных понимается список файлов в хранилище.
СУВ можно использовать для хранения исходных кодов ядра Домино, кодов приложений (проектов) на Домино, истории изменений приложений, документации. Но имеется важное ограничение - слияние возможно только для текстовых файлов.
При описании различных СУВ имеет место некоторая путаница терминов, поэтому дам своё понимание терминов.
Термины
- сэйв (save) - сохранение изменений в среде разработки.
Выполняется разработчиком по мере необходимости.
- коммит (commit, revision) - фиксация изменений в СУВ.
Содержит информацию об авторе и короткое описание сути изменений. Рекомендуется делать коммит, как только появляется работоспособный прогресс. Нельзя объединять в один коммит несколько задач, поскольку СУВ рассматривает коммит как неделимую единицу. Коммит описывает точные различия между двумя состояниями набора данных.
- магистраль (master, origin, mainline) - главное (уникальное) направление разработки.
Основная (эталонная) копия данных в центральном хранилище. Создаётся в начале работы и включает все те данные, которые надо обрабатывать в СУВ. Является единой точкой хранения и источником для большинства клонов.
- версия - моментальный снимок некоего набора данных.
Версия характеризуется символической меткой. Метка описывает состояние и состав данных на момент получения снимка.
- ветвление - создание копии (клона) данных или части данных в целях отдельной разработки, проверки, эксплуатации.
Стратегия ветвления определяется стилем взаимодействия команды разработчиков.
- ветка - копия данных, полученная в результате ветвления. Имеет идентификатор.
Работа в пределах ветки применяется для изоляции изменений от влияния других разработчиков и задач.
В процессе разработки в ветку записываются изменения - коммиты.
- объединение ветвей - перенос изменений (коммитов) из одной ветки в другую.
Это может быть как однонаправленный перенос - только из одной ветки, так и слияние - совместный перенос.
No Comments