Стратегия ветвления TFS, когда выпуск задерживается, а разработка продолжается.
У меня есть моральный недостаток: в моей компании у нас есть весь набор продуктов в основном филиале, и проекты будут отделяться от основного (магистрального) филиала. У меня есть проблема в том, что спринт (там долгие 8 недель), который должен быть доставлен, был отложен и не может быть развернут в течение 2 недель, но разработка должна продолжаться до следующего спринта.
Проблема заключается в том, что если есть ошибка, которую необходимо исправить в спринте 1, и продолжается разработка существующей ветви, то исправление ошибки и части спринта 2 будут смешаны, что усложнит выпуск спринта 1.
С другой стороны, если мы создаем новую ветку из существующей, мы теряем все задачи и ошибки, а что нет.
Есть ли способ для веток кода совместно использовать один командный проект или это глупо?
Как бы вы справились с этой ситуацией? Есть что-то, чего мне не хватает?
1 ответ
Если вы переходите на новый командный проект каждый спринт, то вы делаете это неправильно. Все ветки для одного продукта должны находиться в одном командном проекте.
Спринты должны соответствовать итерациям, а не групповым проектам, чтобы вы могли без проблем переназначать любой рабочий элемент из одного спринта в другой.
Если ошибки являются критическими, то исправьте их в ветви спринта 1 и объедините их в спринт 2. Таким образом, вы можете освободить их без кода спринта 2. Неважно, будет ли это частью вашего первого релиза спринта 1 или в будущем.
Если ошибки не являются критическими, вы можете исправить их в ветке sprint 2 и выпустить sprint 1 вместе с ошибкой.
Нет причин, по которым спринты и ветки должны выстраиваться в линию 1 к 1, если вы делаете релизы только через каждые 3 спринта, то вы можете легко уйти с помощью только ветвления через каждые 3 спринта. Черт, если вы хорошо разбираетесь в управлении выпусками и точно знаете, какой набор изменений был выпущен, вы можете даже перейти через несколько недель после релиза, если вам нужно изменить результат спринта.
Если вы хотите действительно серьезно относиться к непрерывному развертыванию, вам нужно начать рассматривать ветвь ствола и ветви функций, функции объединяются обратно только в ствол, когда они завершены. У вас может быть несколько ветвей функций на спринт. Или посмотрите переключатели функций, означающие, что вы можете развернуть новый код, но отключите его, чтобы пользователи ничего не заметили.