Разветвление по выпускам, функциям, дополнительным функциям и средам

Я просмотрел руководства TFS rangers, прежде чем опубликовать это.

В нашем проекте у меня есть следующие требования:

  1. Происходит разработка версии 1
  2. Она развертывается в среде Dev для интеграции и проверки работоспособности
  3. Если все в порядке, то код развертывается в среде QA
  4. ] Если все в порядке, выпущенный код QA будет развернут в продакшене.

В настоящее время у нас есть кодовая база в TFS под CODE, где разработчики кодируют. Вышеупомянутое ответвлено на DEV для отражения кода среды разработки Ветвь DEV ответвлена ​​на ветвь QA

В в случае, если требуется оперативное исправление, оно фиксируется непосредственно в ветке QA, а затем позже объединяется в обратном направлении с ветвями ниже.

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

Текущие проблемы:

  1. необходимо запланировать поддержку разработки будущего выпуска 1.5.
  2. На данный момент есть некоторые функции / исправления, которые могут / не могут быть включены в текущий выпуск . Разработчики просто откладывают его в данный момент, чтобы его можно было убрать в будущем. Проблема в том, что со временем полки становятся огромной проблемой для объединения, поскольку у них нет истории
  3. Иногда люди работают над большими функциями на полках до недели. Объединение становится огромной краской, поскольку до этого с десятками файлов тоже работали многие люди.

Помня все вышесказанное, я подумываю о переработке нашей стратегии ветвления TS, как показано ниже:

Branching to support features and releases

В соответствии с этим подходом:

  • Разработка будет происходить только в ветке разработки, такой как ветка DevRel1

  • Если разработчик должен работать над большой функцией, он будет работать над веткой , такой как ветка Feature 1, ветвью Dev.По завершении
    он снова сливается с веткой разработчика.

  • Для вероятных функций, которые могут или не могут быть включены в этот выпуск, при разработке необходимо поработать, вероятно, над функцией, ответвленной из основной ветки. Согласно окончательному решению, база будет меньше объединена в соответствующую ветку разработчика.
  • Код будет развернут в среде Dev из ветки Dev
  • Код будет развернут в ветке QA из Main
  • Для выпуска основная ветка будет разветвлена ​​в новую ветку выпуска
  • Горячие исправления в QA происходят на Main ветвь, а при выпуске происходит в ветке выпуска . RI из выпуска происходит с основным, а от FI к ветвям dev в этом случае

Это становится слишком сложным? можно ли его упростить, выглядит ли это нормально или требует исправления?

В настоящее время мы используем TFS 2008.

5
задан user151019 11 May 2012 в 20:07
поделиться