Realmente, realmente, realmente creo que necesitarías un DVCS (por ejemplo, mercurial, git) para hacer esto de forma natural. Con un CVCS necesitarías una rama y esperar a cualquier dios que tengas, no hay un infierno que se fusione.
Si usa un DVCS, puede nivelar el proceso de integración para que el código ya lo revise antes de que llegue al servidor de CI. Si no tiene un DVCS, bueno, el código llegará a su servidor CI antes de ser revisado, a menos que los revisores de código revisen el código en la máquina de cada desarrollador antes de enviar sus cambios.
Una primera forma de hacerlo, especialmente si no tiene un software de administración de repositorios que pueda ayudar a publicar repositorios personales (por ejemplo, bitbucket, github, rhodecode), es tener roles de integración jerárquica. En los siguientes diagramas, puede hacer que los lugartenientes revisen el trabajo de los desarrolladores y que el dictador sea el integrador principal que revisa cómo los lugartenientes fusionaron el trabajo.
Otra forma de hacerlo si tiene un software de administración de repositorio, es usar un flujo de trabajo como el siguiente:
El software de administración de repositorios generalmente ayuda a emitir notificaciones cuando hay actividad en los repositorios (por ejemplo, correo electrónico, rss), así como también permite solicitudes de extracción . La revisión del código puede ocurrir orgánicamente durante las solicitudes de extracción, ya que las solicitudes de extracción suelen hacer que las personas participen en conversaciones para integrar el código. Tome esta solicitud de extracción pública como ejemplo. El administrador de integración en realidad no puede permitir que el código llegue al repositorio bendecido (también conocido como "repositorio central") si es necesario corregir el código.
Lo que es más importante, con un DVCS aún puede admitir un flujo de trabajo centralizado, no necesita tener otro flujo de trabajo sofisticado si no lo desea ... pero con un DVCS puede separar un repositorio de desarrollo central del CI servidor y darle a alguien la autoridad para enviar los cambios del repositorio de desarrollo al repositorio de CI una vez que se haya realizado una sesión de revisión de código .
PD: crédito para las imágenes ir a git-scm.com