Un problema comune nel mio flusso di lavoro molto piccolo è la gestione delle unioni dai repository trunk / stable fino alle feature branch che sono in anticipo rispetto alle versioni trunk o stable, ma che devono tenere traccia delle modifiche nel trunk e nelle versioni stable. Stiamo usando mercurial, ma qualsiasi DVCS potrebbe avere un flusso di lavoro simile, incluso Git o altri.
Inizialmente avevamo un flusso di lavoro in cui uno sviluppatore senior (io) ha fatto la maggior parte della fusione, in quanto era il modello che avevo sperimentato in un posto di lavoro precedente, ma simile al luogo precedente in cui abbiamo lavorato così, questo ha messo molto di onere su uno sviluppatore di prendere i risultati di un gran numero di commit, e ripulire il pasticcio risultante.
Se stavi unendo una modifica, con un messaggio di commit, forse potresti farlo in modo pulito, ma quello che spesso mi succede è che mi ritrovo un po 'indietro e una settimana di cambiamenti deve essere unita.
Quello che mi chiedo è, quando entri in una situazione in cui è necessaria una grande fusione, usando Mercurial o DVCS, qual è il processo che usi e coinvolge la collaborazione tra più sviluppatori nel team, e il tuo team usa la programmazione di coppie per risolvere questo complesso problema di programmazione di Come Ordinare e Atterrare le Modifiche da TRUNK che devono raggiungere il ramo FEATUREXYZ.
Ilflussodilavoroolapraticastandardchestoimmaginandoassomigliaaquesto:
quandoun'unionefinoaunramodifunzionalitàsembrasempliceeriguardasololemiestessemodifiche,lofacciodasolo
quandoun'unionefinoaunramodifunzionalitàattiraanchelemodifichediqualcunaltrochenonsonobanali,coinvolgoquellapersonanell'unione.
Buonsenso?Credodisi.Masospettochealtriabbianoseguitoquestastradaepossanooffrireunapprocciopiùchiaramenteelaboratoe"provato e vero" per questa situazione generale.