Powiedzmy, że piszę dwie różne wersje tego samego oprogramowania / programu / aplikacji / skryptu i przechowuję je pod kontrolą wersji. Pierwsza wersja jest bezpłatną wersją „podstawową”, podczas gdy druga jest płatną wersją „premium”, która pobiera bazę kodu wersji bezpłatnej i rozwija ją o kilka dodatkowych funkcji o wartości dodanej. Wszelkie nowe łatki, poprawki lub funkcje muszą znaleźć drogę do obu wersji.
Obecnie rozważam użycie master
i develop
gałęzi dla głównej bazy kodu (wersja bezpłatna) obok master-premium
i develop-premium
gałęzi dla wersji płatnej. Gdy wprowadzona zostanie zmiana w wersji darmowej i połączona z master
gałęzią (po dokładnych testach develop
oczywiście), zostanie ona skopiowana do develop-premium
gałęzi za pomocą cherry-pick
polecenia do dalszych testów, a następnie scalona master-premium
.
Czy to najlepszy przepływ pracy w tej sytuacji? Czy są jakieś potencjalne problemy, zastrzeżenia lub pułapki, o których należy pamiętać? Czy istnieje lepsza strategia rozgałęziania niż ta, którą już wymyśliłem?
Twoja opinia jest mile widziana!
PS Dotyczy skryptu PHP przechowywanego w Git, ale odpowiedzi powinny dotyczyć dowolnego języka lub VCS.