Я знаю это по именам «закрытая регистрация» или «поэтапная регистрация».
Крупные компании, такие как Microsoft (где я раньше работал) и Sun (не могли найти ссылку), предпочитают дополнительную уверенность и производительность систем тестирования («сборка не может быть разбита по замыслу») над производительностью разработчиков. («регистрация занимает 1-2 часа»). Люди, которые работали только над небольшими компаниями или небольшими проектами, обычно сходят с ума от этой идеи, но вы должны сами заняться математикой.
Я видел два способа реализовать это самостоятельно (и не знаю ни одного продукта, который это делает):
* На стороне клиента: замените общий инструмент регистрации (CL, GUI) на свой собственный, который зафиксирует изменения во временной ветви (или просто поместит файл diff в какое-то временное место), а затем запустит выполнение некоторого удаленного сборочный агент, который примет изменения и выполнит быструю сборку и базовое тестирование (или тесты smote). Когда все хорошо, изменения действительно проверены.
* На стороне сервера: настройте управление версиями таким образом, чтобы люди получали код из «стабильного» местоположения, но передавали изменения в «рабочее» местоположение (по одному на разработчика, команду и т. Д.). Затем включите CI-сервер при регистрации на рабочем месте и автоматически перенесите их в «стабильную ветвь» в случае успеха или верните их в случае сбоя.
Я не защищаю этот подход, просто посмотрите, что соответствует вашим потребностям.