Penso davvero, davvero, che avresti bisogno di un DVCS (ad es. Mercurial, git) per farlo naturalmente. Con un CVCS avresti bisogno di un ramo e speri in qualunque dio tu abbia, non c'è un inferno di fusione.
Se si utilizza un DVCS, è possibile suddividere in livelli il processo di integrazione in modo che il codice lo faccia già rivedere prima che arrivi al server CI. Se non disponi di un DVCS, il codice arriverà sul tuo server CI prima di essere esaminato, a meno che i revisori del codice non riescano a rivedere il codice sul computer di ciascun sviluppatore prima che inviino le modifiche.
Un primo modo per farlo, specialmente se non si dispone di un software di gestione dei repository che può aiutare a pubblicare repository personali (ad esempio bitbucket, github, rhodecode), è avere ruoli di integrazione gerarchica. Nei seguenti diagrammi, è possibile fare in modo che i tenenti esaminino il lavoro degli sviluppatori e il dittatore come integratore principale riesamini il modo in cui i tenenti hanno unito il lavoro.
Un altro modo per farlo se si dispone di un software di gestione del repository è utilizzare un flusso di lavoro come il seguente:
Il software di gestione del repository in genere aiuta a emettere notifiche quando c'è attività nei repository (ad es. E-mail, rss) oltre a consentire richieste pull . La revisione del codice può avvenire organicamente durante le richieste pull, poiché le richieste pull in genere inducono le persone a conversare per integrare il codice. Prendi questa richiesta pull pubblica come esempio. Il gestore dell'integrazione non può effettivamente consentire al codice di arrivare al repository benedetto (noto anche come "repository centrale") se il codice deve essere corretto.
Ancora più importante, con un DVCS è ancora possibile supportare un flusso di lavoro centralizzato, non è necessario disporre di un altro flusso di lavoro fantastico se non si desidera ... ma con un DVCS è possibile separare un repository di sviluppo centrale dall'IC server e dare a qualcuno l'autorità di inviare le modifiche dal repository di sviluppo al repository CI una volta effettuata una sessione di revisione del codice .
PS: il merito delle immagini va su git-scm.com