Мои процессы разработки нашей команды основаны на непрерывной интеграции . Единственные ветки, которые мы создаем, - это ветки обслуживания, когда мы выпускаем, но в противном случае разработчики, как ожидается, будут регулярно (ежедневно, если не чаще) совершать транзакции с багажником, чтобы каждый работал всегда, постоянно тестировался и все это хорошо.
Мое понимание DVCS заключается в том, что оно отлично подходит для ветвления. Я работал несколько лет назад в команде, где это было бы очень полезно, так как каждая битва развития была сделана на ветке и только сливалась при завершении и тестировании. Но это была другая философия от непрерывной интеграции.
Но мне кажется, что для команды, которая использует непрерывную интеграцию, groovy функции инструментов DVCS, такие как Git, не будут быть особенно актуальными и могут даже препятствовать процессу непрерывной интеграции, если слияние изменений требует дополнительных шагов, которые могут быть забыты.
Я уверен, что есть другие преимущества DVCS (например, совершение очень быстро, потому что оно локально, предположительно, слияние с основной ветвью может происходить в фоновом режиме, пока разработчик продолжает работать).
Но по этому вопросу меня интересует, как команды, использующие DVCS и непрерывную интеграцию, примиряют две, казалось бы, противоречивые философии. Меня в основном интересуют люди, которые на самом деле это делают.