Supposons que j'écris deux versions différentes du même logiciel / programme / application / script et que je les stocke sous contrôle de version. La première version est une version gratuite "de base", tandis que la seconde est une version "Premium" payante qui reprend le code de base de la version gratuite et la développe avec quelques fonctionnalités supplémentaires à valeur ajoutée. Tous les nouveaux correctifs, correctifs ou fonctionnalités doivent se retrouver dans les deux versions.
J'envisage actuellement d'utiliser master
et develop
branches pour la base de code principale (version gratuite) aux côtés master-premium
et develop-premium
branches pour la version payante. Lorsqu'une modification est apportée à la version gratuite et fusionnée dans la master
branche (après des tests approfondis develop
bien sûr), elle est copiée dans la develop-premium
branche via la cherry-pick
commande pour plus de tests, puis fusionnée master-premium
.
Est-ce le meilleur flux de travail pour gérer cette situation? Existe-t-il des problèmes, mises en garde ou pièges à prendre en compte? Existe-t-il une meilleure stratégie de branchement que ce que j'ai déjà proposé?
Vos remarques sont très appréciées!
PS Ceci est pour un script PHP stocké dans Git, mais les réponses devraient s’appliquer à n’importe quel langage ou VCS.