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.