Я действительно, действительно, действительно думаю, что вам понадобится DVCS (например, Mercurial, Git), чтобы сделать это естественно. С CVCS вам понадобится ветвь и надежда на то, что у вашего бога нет адского слияния.
Если вы используете DVCS, вы можете распределить процесс интеграции так, чтобы код уже проверял его до того, как он поступит на сервер CI. Если у вас нет DVCS, код будет доставлен на ваш сервер CI перед проверкой, если только те, кто проверяет код, не проверят код на компьютере каждого разработчика перед тем, как отправлять свои изменения.
Первый способ сделать это, особенно если у вас нет программного обеспечения для управления репозиториями, которое может помочь в публикации личных репозиториев (например, bitbucket, github, rhodecode), - это иметь роли иерархической интеграции. На следующих диаграммах лейтенанты могут просматривать работу разработчиков и назначать диктатора основным интегратором, который проверяет, как лейтенанты объединили работу.
Другой способ сделать это, если у вас есть программное обеспечение для управления репозиторием, это использовать рабочий процесс, подобный следующему:
Программное обеспечение для управления репозиторием обычно помогает отправлять уведомления, когда есть активность в репозиториях (например, электронная почта, rss), а также разрешать пул-запросы . Проверка кода может происходить органически во время запросов извлечения, поскольку запросы извлечения обычно заставляют людей участвовать в беседах для интеграции кода. Возьмите этот публичный запрос в качестве примера. Менеджер интеграции фактически может не позволить код , чтобы прибыть в благословенное хранилище ( так называемый «центральный репозиторий») , если потребности коды должны быть исправлены.
Самое главное, что с DVCS вы все еще можете поддерживать централизованный рабочий процесс, вам не нужно иметь другой фантастический рабочий процесс, если вы этого не хотите ... но с DVCS вы можете отделить центральный репозиторий разработки от CI сервер и дать кому-то полномочия выдвигать изменения из репозитория dev в репозиторий CI после завершения сеанса проверки кода .
PS: кредит на изображения перейдите на git-scm.com