Abbiamo una base di codice molto ampia in mercurial. Abbiamo circa una cadenza di rilascio di 6 mesi con sprint di 2 settimane. Per ogni versione abbiamo circa 10 feature branch e forse circa 5 persone che lavorano per filiale.
Ora se i rami funzione sono o meno una buona idea è una domanda per un altro giorno.
Al momento effettuiamo fusioni / copie dai rami delle funzionalità nella linea principale di controllo qualità due volte durante questi 6 mesi, una volta circa a metà e una settimana prima della fine del rilascio. (in particolare, unisci-down da qa, quindi feature branch copy up).
La ragione sembra non essere in sincronia tra loro, ma per consentire alcuni test a metà del rilascio.
Questo ha causato molta angoscia riguardo all'incombenti fusioni e alcuni brutti conflitti di fusione, ma non tutti quelli che ci si potrebbe aspettare.
Quindi immagino che le mie domande siano:
-
Avresti fusioni più frequenti solo per il solo scopo di mantenere sincronizzati gli elementi e impedire che le sorprese creino più churn o meno churn?
-
Se sì, quale sarebbe un buon programma? Ci ho pensato un po '- fusioni più frequenti richiederebbero ai team di avere il loro codice in buona forma più spesso, il che potrebbe non essere una brutta cosa. Troppo spesso però potrebbero diffondere bachi attorno a tutte le feature branch prima che abbiano la possibilità di essere corretti.
Usiamo Hg, ma sto aggiungendo git come tag perché penso che i problemi siano più o meno gli stessi.