Как определить рабочие элементы, исправленные в конкретной сборке TFS при использовании веток?
Мы начали использовать следующую структуру ветвления в TFS 2010:
Все изменения, выполненные до сих пор, выполнялись в ветви "Разработка", и все проверки были связаны с рабочим элементом "Задача". Все задачи являются дочерними по отношению к рабочему элементу Bug или Product Backlog Item. Каждая сборка CI запускается для определенного набора изменений, и набор изменений связан с задачей, поэтому мы можем вручную выяснить, какая ошибка или PBI была только что построена.
Через некоторое время после того, как код был собран, развернут в нашей среде интеграции и протестирован разработчиком, он объединяется с основной веткой. Очевидно, что несколько изменений могут быть объединены с Main одновременно. Ночная сборка создаст этот код, если мы не будем вручную запускать ночной режим до этого. QA позже развернет одну из этих "основных" сборок в среде QA.
Со времени последнего развертывания QA возможно, было несколько сборок ветки Main. Эти сборки связаны с наборами изменений "Слияние", а не с исходными наборами изменений, которые были связаны с Задачами.
Как определить набор задач, которые были решены с помощью данной "Основной" сборки, которая является сборкой другой ветви, нежели та, которая связана с рабочими элементами Задачи?
После того, как мы начали подготовку к выпуску, нам вполне может потребоваться внести изменения в ветку Release, что еще более усложнит ситуацию, поскольку мы будем сливаться обратно из Release в Main, а наборы изменений Release будут связаны с Задачами. Затем они будут объединены с разработкой, что сделает жизнь еще интереснее!
PS Вопрос " Как определить рабочие элементы, связанные с веткой исходного кода в TFS 2010?" Близок к тому же, но не совсем.
2 ответа
Взгляните на сообщение в блоге Джейкоба Эна " Автоматическое объединение рабочих элементов в TFS 2010". Он написал плагин, который можно скачать с codeplex. Он автоматически свяжет рабочие элементы, которые были связаны с объединенными наборами изменений. Поэтому при слиянии с Main или Release рабочие элементы будут связаны с наборами изменений в этих ветвях, а рабочие элементы будут включены в отчеты о сборках для сборок из этих ветвей. Плагин очень прост в развертывании.
Другой вариант заключается в том, что вы можете создать настраиваемое действие рабочего процесса, которое вы можете запускать во время сборки, которое может просматривать историю слияний для каждого из наборов изменений, которые обычно были бы связаны. По сути, это обход дерева, начиная с известного набора связанных наборов изменений. Я бы предпочел такой подход, поскольку вы можете позволить своим разработчикам беспокоиться только о необходимости связать рабочие элементы с исходными наборами изменений, а не делать это также с объединением наборов изменений. Это также позволяет вам обойти развертывание пользовательской политики рабочих элементов, как описал Брайан в своем предложении.
У меня может быть пример кода, с которого можно начать обход дерева истории слияния, если вы хотите связаться со мной по адресу http://www.edsquared.com/