Qual è una buona frequenza per unire i rami di funzionalità a una linea principale?

5

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:

  1. 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?

  2. 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.

    
posta marathon 16.04.2015 - 18:29
fonte

1 risposta

6

Il buon programma è di unire solo codice stabile (o "probabile che sia stabile").

Se ti unisci a metà strada solo per iniziare i test e sai che alcune delle funzionalità che stai codificando non sono terminate, otterrai sicuramente dei feedback di prova su queste funzionalità.

La domanda che devi porre è "Sono fiducioso della completezza di ciò che ho già costruito?"

Se la risposta è Sì, puoi testarla. Se no, non ha senso testarlo, continua a scrivere codice.

EDIT: In realtà, puoi iniziare a testare parzialmente ogni volta che uno dei tuoi sviluppatori ti dice che ha finito una funzione che potrebbe essere ok da sola.

    
risposta data 16.04.2015 - 18:12
fonte

Leggi altre domande sui tag