Je pense vraiment, vraiment, vraiment que vous auriez besoin d'un DVCS (par exemple, mercurial, git) pour le faire naturellement. Avec un CVCS, vous auriez besoin d'une branche et espérez que votre dieu soit égal à l'enfer.
Si vous utilisez un DVCS, vous pouvez hiérarchiser le processus d'intégration afin que le code le revoie déjà avant qu'il n'arrive sur le serveur CI. Si vous ne possédez pas de DVCS, le code arrivera sur votre serveur CI avant d'être révisé, à moins que les réviseurs de code ne l'examinent sur la machine de chaque développeur avant de soumettre leurs modifications.
Une première façon de le faire, spécialement si vous n’avez pas de logiciel de gestion de référentiel capable de publier des référentiels personnels (par exemple, bitbucket, github, rhodecode), consiste à avoir des rôles d’intégration hiérarchique. Dans les schémas suivants, vous pouvez faire en sorte que les lieutenants examinent le travail des développeurs et que le dictateur, en tant qu’intégrateur principal, examine la façon dont les lieutenants ont fusionné le travail.
Si vous disposez d'un logiciel de gestion de référentiel, vous pouvez également utiliser un flux de travail tel que celui-ci:
Les logiciels de gestion de référentiels permettent généralement d’émettre des notifications en cas d’activité dans les référentiels (par exemple, courrier électronique, flux RSS) et d’autoriser les demandes de retrait . La révision du code peut se produire de manière organique lors des demandes d'extraction, car ces dernières amènent généralement les gens à engager des conversations pour intégrer le code. Prenez cette demande publique comme exemple. Le gestionnaire d’intégration ne peut en réalité pas permettre au code d’arriver dans le référentiel béni (aussi appelé «référentiel central») si le code doit être corrigé.
Plus important encore, avec un DVCS, vous pouvez toujours prendre en charge un flux de travail centralisé. Vous n'avez pas besoin d'un autre flux de travail très sophistiqué si vous ne le souhaitez pas. Mais avec un DVCS, vous pouvez séparer un référentiel de développement central du CI. serveur et donnez à quelqu'un l’autorisation de transférer les modifications du référentiel dev vers le référentiel CI une fois la session de révision du code terminée .
PS: le crédit pour les images va à git-scm.com