Diciamo che sto scrivendo due diverse versioni dello stesso software / programma / app / script e le sto archiviando sotto il controllo della versione. La prima versione è una versione "Basic" gratuita, mentre la seconda è una versione "Premium" a pagamento che prende la base di codice della versione gratuita e si espande su di essa con alcune funzionalità a valore aggiunto. Eventuali nuove patch, correzioni o funzionalità devono trovare la strada in entrambe le versioni.
Attualmente sto pensando di utilizzare master
e develop
rami per la base di codice principale (versione gratuita) lungo master-premium
e develop-premium
rami per la versione a pagamento. Quando viene apportata una modifica alla versione gratuita e unita al master
ramo (dopo aver eseguito test approfonditi, develop
ovviamente), viene copiata nel develop-premium
ramo tramite il cherry-pick
comando per ulteriori test e quindi unita master-premium
.
È questo il miglior flusso di lavoro per gestire questa situazione? Ci sono potenziali problemi, avvertenze o insidie di cui essere consapevoli? Esiste una strategia di ramificazione migliore di quella che ho già escogitato?
Il tuo feedback è molto apprezzato!
PS Questo è per uno script PHP memorizzato in Git, ma le risposte dovrebbero applicarsi a qualsiasi lingua o VCS.