Attualmente abbiamo i seguenti rami:
- Sviluppa
- Release 1
- Release 2
- etc ..
- Master
Quando vogliamo tagliare nuove funzionalità per un rilascio, creiamo un nuovo ramo di rilascio (ad esempio, versione 3). Quindi applichiamo solo correzioni di bug ecc. Al ramo di rilascio e non ci sono più modifiche importanti.
Quando la versione 3 è stata testata e tutto è pronto, blocciamo la Release 3 da ulteriori modifiche, quindi la fondiamo in master e la rilasciamo in produzione.
La mia domanda è, abbiamo davvero bisogno di un ramo principale? Perché non possiamo rilasciare direttamente dalla versione 3 in produzione.
Sembra che la fusione in master in primo luogo aggiunga solo più lavoro e requisiti extra di rischio / test per garantire che non abbiamo eseguito una fusione "errata" dalla versione 3 a Master.
L'altro beneficio percepito dal mio punto di vista sta uscendo direttamente dalla sezione Release 3 significa che se qualcosa va terribilmente storto e decidiamo di effettuare il rollback, possiamo semplicemente ri-rilasciare il ramo Release 2 in produzione, quindi continuare a fare correzioni sulla versione 3. Questo sembra più semplice di dover eseguire il rollback del master.
Ho provato a cercare questo, ma ho trovato solo informazioni su quale sia la differenza tra rami di rilascio e rami principali, ma non molto su se / perché abbiamo bisogno di entrambi.
Modifica: il motivo per cui normalmente manteniamo più rami di rilascio è che spesso finiamo con 2 o più serie di sviluppo "meritevoli di liberatoria" che sono pronte per la fase di test. Per esempio. Il team di test potrebbe lavorare sulla versione 1 e lo sviluppo ha appena terminato il lavoro di Release 2. Non vogliamo unire la Release 2 e la Release 1 perché insieme riprenderanno in modo efficace la fase di test e prolungheremo il rilascio. Quindi, invece, creiamo un nuovo ramo di rilascio per il lavoro di rilascio 2.