2013-06-07 2 views
3

Мы планируем принять git-flow в команде из ~ 10 разработчиков с недельным расписанием выпуска. Наш план состоит в том, чтобы разветвить филиал от разработки каждый понедельник и стабилизировать его выпуском следующего месяца в производство. Тем временем, многие функции могут приземляться в разработке, и поэтому, скорее всего, будет необходимо разрешить конфликты слияния между ветвью разработки и выпуска.Совместим ли git-flow с крупными командами?

Поскольку человек, выполняющий слияние, не может знать всю кодовую базу и разрешать конфликты самостоятельно, мне интересно, не вызовет ли это проблемы. В принципе, этот человек должен будет поговорить с каждым из разработчиков и помочь им разрешить конфликт. Боюсь, это может быть узким местом и стать довольно утомительным и болезненным.

Это проблема на практике? Любой опыт объединения филиалов в стиле git-flow? Или некоторые другие стратегии ветвления с аналогичными преимуществами?

+0

Вы, кажется, смешиваете рабочий процесс git и фактические роли разных людей. git-flow не делает никаких предположений о том, кто что делает, он просто устанавливает рекомендации о том, как отрасли должны развиваться. Кто делает то, что полностью зависит от вас, не обязательно, чтобы один человек делал все слияния. –

+0

Да, это может быть больше людей, которые вращают это, но проблема все еще там. Один человек несет ответственность за объединение стабильной отрасли со всей новой работой, которая прибыла для разработки той конкретной недели. Я вижу, что это проблема. – VoY

ответ

2

Я был разработчиком на внутренней вилке git-потока внутри компании, в которой я работаю, и способствовал ее развертыванию в команде из примерно 40 разработчиков, и мы видели некоторые проблемы с ее реализацией на 3-й неделе который может включать в себя несколько проектов + исправления ошибок одновременно.

В целом рабочий поток git-flow работает очень хорошо, но всякий раз, когда вы делаете упор на ветку освобождения, в то время как активная разработка выполняется «развивается», всегда существует потенциал для возникновения конфликтов слияния.

Один из способов облегчить это - постоянно вытаскивать ветвь освобождения назад для разработки (иметь задачу CI или CRON, чтобы справиться с этим, это не обязательно должно быть ручным).

Всегда требуется уровень человеческого взаимодействия, необходимый для исправления ошибок в ветви релиза. Если вы не хотите постоянно оттягивать ветвь релиза (мы этого не делаем), вам нужно подумать о том, какие ошибки вы собираетесь исправить при выпуске, и которые вы исправите, чтобы развиться раньше следующего выпуска.

В любом случае, до тех пор, пока ваши выпуски будут тщательно спланированы, и вы будете управлять тем, как и когда вы собираетесь исправлять определенные ошибки, вы не должны столкнуться с слишком большим количеством конфликтов слияния.

Смежные вопросы