Допустим, я пишу две разные версии одного и того же программного обеспечения / программы / приложения / скрипта и храню их под контролем версий. Первая версия является бесплатной «Базовой» версией, а вторая - платной «Премиум», которая использует кодовую базу бесплатной версии и дополняет ее несколькими дополнительными дополнительными функциями. Любые новые исправления, исправления или функции должны найти свое применение в обеих версиях.
В настоящее время я рассматриваю возможность использования master
и develop
ответвлений для основной кодовой базы (бесплатной версии) вдоль стороны master-premium
и develop-premium
ответвлений для платной версии. Когда изменение вносится в бесплатную версию и объединяется с master
веткой (после тщательного тестирования, develop
конечно), оно копируется в develop-premium
ветку с помощью cherry-pick
команды для дополнительного тестирования, а затем объединяется в master-premium
.
Это лучший рабочий процесс для решения этой ситуации? Есть ли потенциальные проблемы, предостережения или подводные камни, о которых следует знать? Есть ли лучшая стратегия ветвления, чем то, что я уже придумал?
Ваш отзыв очень важен!
PS Это для PHP-скрипта, хранящегося в Git, но ответы должны относиться к любому языку или VCS.