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 masteri developgałęzi dla głównej bazy kodu (wersja bezpłatna) obok master-premiumi develop-premiumgałęzi dla wersji płatnej. Gdy wprowadzona zostanie zmiana w wersji darmowej i połączona z mastergałęzią (po dokładnych testach developoczywiście), zostanie ona skopiowana do develop-premiumgałęzi za pomocą cherry-pickpolecenia 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.