Abbiamo davvero bisogno di un ramo master o possiamo rilasciare direttamente da un ramo di rilascio?

3

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.

    
posta Jacob Regan 04.06.2018 - 16:56
fonte

2 risposte

4

Do we really need a master branch?

Penso che questa sia una cosa strutturale / di denominazione. Sembra che al momento del rilascio il tuo rilascio e i rami master siano identici. Ciò implicherebbe che non è necessario per le versioni.

Sembra che il tuo progetto utilizzi i rami in modo leggermente diverso rispetto al modo canonico. Nominalmente hai un ramo master / release e le uscite vengono taggate. Gli sviluppatori creano filiali per aggiungere funzionalità, correzioni, ecc. E quindi unire i loro rami nel master in modo che possano essere utilizzati per il rilascio.

Quindi, quando si verifica un bug che deve essere applicato a una versione precedente, viene creata una nuova diramazione per tale versione in base alla versione con tag, la correzione del bug viene eseguita, unite, cosa hai e quindi una nuova versione precedente (point release) è fatto per quelli che ancora usano la vecchia versione.

Se non intendi eseguire il rollback delle vecchie versioni, o semplicemente non supportarle, allora non sono affatto necessarie, quindi il modo normale di crearle su richiesta, sembra che tu li crei preventivamente. Quindi, nel tuo caso, No non hai davvero bisogno di un ramo Master, anche se sembra che ciò di cui non hai veramente bisogno siano i rami di rilascio, finché non hai bisogno di apportare modifiche.

    
risposta data 04.06.2018 - 18:51
fonte
0

Dipende PERCHÉ hai un ramo principale. Vorrei eseguire un git diff per vedere quali sono le differenze tra master e l'ultima versione. Capisci questo, e puoi capire cosa dovrebbe cambiare per sbarazzartene.

Ad esempio, potrebbe essere che la differenza tra rami master e release sia che le credenziali di produzione siano mantenute nel ramo principale. In tal caso, non è possibile sbarazzarsi del ramo master senza avere un altro modo per aggiungere tali credenziali solo in un ambiente di produzione.

    
risposta data 05.06.2018 - 19:42
fonte

Leggi altre domande sui tag