Я работаю в SCM и работаю с различными инструментами (Subversion, Clearcase, TFS, Perforce) и технологиями (в основном .NET, Java). До того, как я начал работать, обычным делом было создание контролируемого филиала.
Я определяю управляемую ветвь как:
- Отдельная ветка, которая содержит продвигаемый код, к которому разработчики не могут получить доступ. Только команда инженеров-строителей имеет доступ к этому.
Контролируемая сборка:
-Строительный движок, который берет код из контролируемой ветви и создает артефакт, который разработчики не могут изменить.
В результате слияние с этой веткой стало значительным шагом в рамках управляемого процесса сборки. Это может создать проблемы как со скоростью, так и с ошибками (которые будут в основном устранены автоматизацией).
Преимущества:
Автоматическая блокировка кода (поскольку разработчики не могут изменять ветку)
Названия филиалов могут отличаться (другие команды не обязательно следуют стандартизированным методам, и мы не всегда можем оказать необходимое давление).
простой способ узнать точное состояние кода версии (то есть последний код в контролируемой ветке для версии - это то, что пошло в prod)
Недостатки:
скорость
сопоставление сборок dev с контролируемыми сборками при обсуждении проблем с разработчиками (это автоматизировано, но немного грязно).
Ошибки (еще одно место, чтобы запутаться в процессе)
Может ли функция разделения безопасности / ролей полностью обрабатываться с помощью списков изменений / наборов изменений / неизменяемых меток?
Вопросы:
Должен ли я рекомендовать перейти от текущей стратегии контролируемой ветви? Я пропускаю другие льготы?