Eu realmente acho que você precisaria de um DVCS (por exemplo, mercurial, git) para fazer isso naturalmente. Com um CVCS, você precisaria de um ramo e esperaria que, seja qual for o deus que você tenha, não haverá inferno em fusão.
Se você usa um DVCS, pode hierarquizar o processo de integração para que o código já o revise antes de chegar ao servidor de IC. Se você não possui um DVCS, bem, o código chegará ao servidor de IC antes de ser revisado, a menos que os revisores de código revisem o código na máquina de cada desenvolvedor antes de enviarem suas alterações.
Uma primeira maneira de fazer isso, especialmente se você não possui um software de gerenciamento de repositório que possa ajudar a publicar repositórios pessoais (por exemplo, bitbucket, github, rhodecode), é ter funções de integração hierárquica. Nos diagramas a seguir, você pode solicitar que os tenentes revisem o trabalho dos desenvolvedores e que o ditador seja o principal integrador que revise como os tenentes mesclaram o trabalho.
Outra maneira de fazer isso, se você tiver um software de gerenciamento de repositório, é usar um fluxo de trabalho como o seguinte:
O software de gerenciamento de repositório normalmente ajuda a emitir notificações quando há atividade nos repositórios (por exemplo, email, rss), além de permitir solicitações de recebimento . A revisão de código pode ocorrer organicamente durante solicitações pull, pois as solicitações pull normalmente fazem as pessoas se envolverem em conversas para integrar o código. Tome esta solicitação de recebimento público como exemplo. O gerenciador de integração realmente não pode permitir que o código chegue ao repositório abençoado (também conhecido como "repositório central") se o código precisar ser corrigido.
O mais importante é que, com um DVCS, você ainda pode suportar um fluxo de trabalho centralizado, não precisa ter outro fluxo de trabalho sofisticado, se não quiser ... mas com um DVCS, é possível separar um repositório de desenvolvimento central do IC servidor e conceda a alguém a autoridade para enviar as alterações do repositório dev para o repositório CI quando uma sessão de revisão de código for concluída .
PS: Crédito pelas imagens, acesse git-scm.com