Выбор стратегии ветвления и слияния в Team Foundation Server (TFS) - Вопросы ветвления
ОГЛАВЛЕНИЕ
Страница 7 из 8
Вопросы ветвления
При ветвлении необходимо руководствоваться следующими рекомендациями:
- Прибегать к ветвлению следует только в случае, если группа разработки должна работать с одним набором файлов параллельно с другой группой. В
- противном случае, сборку можно маркировать меткой и создать ветвь от нее позднее. Слияние ветвей может быть сложным и требовать много времени, особенно если внесены существенные изменения.
- Ветви должны быть структурированы таким образом, чтобы слияние приходилось производить лишь вдоль по иерархии (вверх или вниз по ветви), а не поперек иерархии. Ветвление поперек иерархии требует использования слияния без общей родительской версии, при котором большинство конфликтов приходится разрешать вручную.
- В основе иерархии ветвей лежат ветвь-родитель и ветвь-потомок, и эта иерархия может отличаться от физической структуры исходного кода на диске. При планировании слияний необходимо руководствоваться логической структурой ветвления, а не физической структурой каталога исходного кода на диске.
- Не следует создавать слишком разветвленные структуры, поскольку тогда на внесение изменений в основную ветвь исходного кода и на разрешение конфликтов уходит слишком много времени. Сильно разветвленная структура может означать, что распространение изменений, выполненных в дочерней ветви, на основную ветвь исходного кода может занять очень большой период времени. Это, как правило, имеет негативное влияние на сроки выполнения проекта и увеличивает время, необходимое для исправления дефектов.
- Ветвление следует выполнять на высоком уровне и включать конфигурационные и исходные файлы.
- Развивать структуру ветвления следует постепенно.
- Для выполнения слияния и разрешения конфликтов требуется один или более разработчиков. После слияния исходный код должен быть тщательно протестирован, потому что очень часто неверные решения при слиянии приводят к дестабилизации сборки.
- Слияние поперек иерархии ветвей представляет особую сложность. При таком слиянии многие конфликты, которые могли бы обрабатываться автоматически, приходится обрабатывать вручную.
Вопрос о том, следует ли создавать ветвь, можно свести к вопросу, будут ли затраты на решение конфликтов в режиме реального времени выше, чем общие затраты на разрешение конфликтов при слиянии ветвей.