Модель ветвления
В Sky/IX
используется модифицированная модель ветвления Git Flow.
Основная ветка (master
) содержит исходный код актуальной стабильной версии
ОС. Каждая версия маркируется соответствующим тегом, например: version/0.1
.
Разработка новых версий производится в ветке develop
, производной от
основной ветки. Напрямую сделать коммит в ветки master
и develop
нельзя,
все изменения производятся только через запросы на слияние.
При разработке новых функций для каждой функции от ветки develop
порождается
новая ветка с префиксом feature
, например: feature/cpio
. По завершению
разработки эта ветка сливается с develop
.
Когда принимается решение о выпуске версии, от ветки develop
порождается
новая ветка с префиксом release
и номером версии без указания уровня зрелости,
например: release/0.1
. Эта ветка необходима для стабилизации версии и
вливать в неё новые функции не допускается. Каждый этап стабилизации маркируется
соответствующим тегом, например: version/0.1-rc1
, вплоть до version/0.1-ga
.
После того, как версия протестирована и стабилизирована, производится слияние
её ветки с ветками master
и develop
.
Для быстрых исправлений от ветки соответствующей версии порождается новая
ветка с префиксом hotfix
, которая впоследствии сливается с ветками master
и develop
, а также веткой соответствующей версии.
Для сохранения истории коммитов все слияния производятся с флагом --no-ff
,
который позволяет сохранить историю коммитов c учетом веток, даже если при
слиянии история ветки назначения не менялась.