La mia azienda utilizza Git e utilizza un particolare schema di ramificazione: il lavoro viene eseguito in master e i rami sono riservati per le versioni. Funziona bene, a patto che tutto il lavoro svolto in un'iterazione lo faccia nel ramo, ma se si verifica un problema di produzione critico, dobbiamo assicurarci che il lavoro lo faccia in qualche modo in entrambe le filiali.
Ultimamente, abbiamo avuto un po 'di "divertimento" con quei rami. È stato un mal di testa amministrativo, assicurando che tutto il lavoro lo faccia in ogni ramo, e alcuni bug che sono stati corretti su un ramo non lo fanno diventare master fino a quando qualcuno lo indica, il che è preoccupante.
Mi sono imbattuto in Git Flow qualche tempo fa, e sento che sarebbe una soluzione al nostro problema: il codice non si diffonde fino al rilascio o al contrario. L'unico problema è che il mio lead ha affermato che questo tipo di sviluppo era un anti-pattern: si sviluppava furiosamente per due settimane, poi ne spendeva tre per risolvere i conflitti di fusione.
Non sono del tutto sicuro di essere d'accordo, e da quando l'ho tirato su, il lavoro è tornato normale. Solo di recente abbiamo avuto alcuni importanti punti dolenti con questo.
Mi piacerebbe sapere - perché questo schema di sviluppo dovrebbe essere visto come un anti-modello? È veramente un anti-pattern?