TFS. Какова наилучшая стратегия ветвления для этого сценария?

Моя цель - иметь такую ​​​​структуру:

Project X
-- Main
-- QA
-- Dev
  -- Feature X

В идеале, работая над новой функцией, я хотел бы отделить основной ствол и создать новую ветку Dev/Feature X. Как только функция будет готова для тестирования, я хотел бы переместить «Функция X» в «QA» с помощью инструмента слияния. Затем перейдите из ветки «QA», как только это будет сделано и протестировано. Как только это правда, я хотел бы объединиться из «QA» в «Main».

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


person Travyguy9    schedule 02.12.2013    source источник
comment
См. это для возможной информации: -contaminat?rq=1" title="как я могу разветвить свой код таким образом, чтобы тестирование стало возможным без загрязнения"> stackoverflow.com/questions/5395867/   -  person Preet Sangha    schedule 03.12.2013


Ответы (1)


Да, это возможно.

Вы должны разветвить Main на QA, затем разветвить QA на Feature X, Feature Y и т. д.

Затем код разработчиков в ветвях Feature, и когда функция будет завершена, объедините код из ветви функций в ветвь QA. Также важно, чтобы разработчики периодически выполняли обратную интеграцию из резервной копии QA в свои ветки функций, чтобы убедиться, что все последние изменения присутствуют и работают в их ветке разработки.

Когда релиз сделан и протестирован в ветке QA, вы объединяете его обратно в Main, а затем (если хотите) ветку Main в ветку Release.

В этом случае Main всегда должен представлять собой полностью проверенный и готовый к отправке код — либо код, который вы только что отправили, либо код, который вы собираетесь отправить. Никто не должен когда-либо изменять Main, не пройдя (по крайней мере) ветвь QA.

По сути, вам не хватает того, что ваш код всегда должен проходить через ветку QA. Обычно я называю это веткой «Интеграция», а не «Контроль качества», но цель та же.

У ALM Rangers есть потрясающее руководство по ветвлению/объединению — я настоятельно рекомендую его прочитать!

person Daniel Mann    schedule 03.12.2013
comment
Конечно. Я понимаю это и знаю, что это сработает. Я также думаю, что мы пойдем по этому пути, но я спросил, возможно ли сделать все это, кроме как иметь ветку Dev от Main к Feature X (а не QA к Feature X). Я предполагаю, что это не сработает, поскольку QA не будет родителем для Feature, поэтому TFS не позволит им позже объединить Feature X с QA. Это правильно? - person Travyguy9; 03.12.2013
comment
Это правильно - это было бы безосновательным слиянием. Рекомендуемый подход — это тот, о котором я говорил. - person Daniel Mann; 03.12.2013