Diciamo che sto scrivendo due diverse versioni dello stesso software / programma / app / script e memorizzandole sotto controllo di 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à aggiuntive a valore aggiunto. Eventuali nuove patch, correzioni o funzionalità devono trovare la loro strada in entrambe le versioni.
Attualmente sto prendendo in considerazione l'utilizzo di master
e develop
rami per la base di codice principale (versione gratuita) lungo i rami master-premium
e develop-premium
per la versione a pagamento. Quando viene apportata una modifica alla versione gratuita e unita al ramo master
(dopo un accurato test su develop
ovviamente), viene copiata sul ramo develop-premium
tramite il comando cherry-pick
per ulteriori test e quindi uniti in master-premium
.
È questo il miglior flusso di lavoro per gestire questa situazione? Ci sono potenziali problemi, avvertenze o insidie di cui essere a conoscenza? C'è una strategia di ramificazione migliore di quella che ho già trovato?
Il tuo feedback è molto apprezzato!
P.S. Questo è per uno script PHP memorizzato in Git, ma le risposte dovrebbero applicarsi a qualsiasi lingua o VCS.