Abbiamo una base di codice molto ampia in mercurial. Abbiamo una cadenza di rilascio di circa 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 le filiali di funzionalità sono o meno una buona idea è una domanda per un altro giorno.
Attualmente facciamo fusioni / copie dei rami delle funzionalità nella linea principale di QA due volte durante questi 6 mesi - una volta circa 1/2 way through e una volta alcune settimane 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.