Модель ветвления
В 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 учетом веток, даже если при
слиянии история ветки назначения не менялась.