Il Workflow Git trunk-based è, per certi versi, l’unione dei due precedenti e cerca di unire diverse esigenze e riflessioni legate allo sviluppo software moderno.
Il workflow trunk-based in Git segue l’indicazione di facilitare lo sviluppo concorrente su un singolo branch principale, offrendo diversi suggerimenti su come ottenere questo risultato. Tali suggerimenti sono anche non direttamente correlati all’uso del version control system, ma si estendono anche alle modalità con cui implementare funzioni nel proprio codice.
A titolo d’esempio, nel workflow trunk-based è preferibile fare push di una nuova funzione non ancora completa direttamente sul branch principale, avendo cura, però, di disattivarla tramite degli opportuni feature flag. Non viene, però, impedita la creazione di branch che devono però essere usati solo se effettivamente necessario: per esempio, i feature branch possono essere utili se sul progetto lavorano molti sviluppatori, ma devono essere “chiusi” in un paio di giorni, i branch di release possono essere creati solo quando è effettivamente rilasciato un fix a una versione precedentemente rilasciata.
Per maggiori informazioni sulla filosofia trunk-based, che ricordiamo va oltre quello che è il semplice version control di un progetto, basta un click sul link!
Vantaggi:
- update frequente del branch principale e delle working copy, minimizza complessità di risoluzione conflitti
- branch principale sempre pulito e naturalmente portato verso la continuous delivery
Svantaggi:
- non è limitato a sole guideline su come usare i branch, ma richiede conoscenze su molte altre tecniche (feature flag, continuous delivery, …)
il team deve conoscere molto bene il progetto e avere forte ownership