Повторно свяжите наборы изменений и рабочие элементы со сборкой

Есть ли способ вручную удалить связанные наборы изменений и рабочие элементы из завершенной сборки Team Foundation Server?

Например: я регистрирую ревизию, но делаю ошибку и связываю ее с неправильным рабочим элементом. Прежде чем я это заметил, я создаю сборку выпуска, которая связывает наборы изменений и рабочие элементы и автоматически генерирует журнал изменений. Теперь со сборкой связан неправильный рабочий элемент. Чтобы исправить свою ошибку, я удаляю связь между рабочим элементом и набором изменений. Однако связь между моей завершенной сборкой и рабочим элементом все еще существует. Есть ли способ удалить ссылку через пользовательский интерфейс или мне нужно копаться в TFS API?

Я попытался удалить свою завершенную сборку и запустить новую, однако рабочие элементы и наборы изменений, которые были связаны с удаленной сборкой, не связаны с новой сборкой (даже если я удалил предыдущую сборку). Кто-нибудь знает, как заставить TFS связывать рабочие элементы и наборы изменений с новой сборкой?


person Zvonko    schedule 24.06.2015    source источник


Ответы (1)


Проведя небольшое исследование, я наткнулся на эту статью (https://social.msdn.microsoft.com/Forums/en-US/76462cd5-070f-4fba-8206-550b5511ae68), где у кого-то была аналогичная проблема. Я также проверил указанную статью на http://www.woodwardweb.com/tfs_top_tip/tfs_top_tip_15.html.

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

Warning: Cannot find the last label 'XXXXXXXXXXXXXXXXXXXX': no changesets will be associated with the build.

И имя метки, которую не удалось найти, было в точности названием метки, созданной удаленной сборкой. TFS очевидно где-то помнит предыдущий ярлык.

Я проверил базу данных коллекции TFS и вуаля, вот решение:

  1. Удалите несколько последних сборок (и убедитесь, что метки для этих сборок удалены).
  2. Подключитесь к базе данных коллекции TFS.
  3. Открыть стол tbl_BuildDefinition
  4. Find the build definition for which you want to reassociate changesets and change values in LastBuildUri, LastGoodBuildUri and LastGoodBuildLabel where:
    • LastGoodBuildLabel is the actual label which will be the new baseline for associating changesets and work items with build,
    • LastGoodBuildUri - это идентификатор сборки, которая создала последнюю метку, которая у вас есть в истории исходного кода (вы можете найти ее в истории сборки).
    • LastBuildUri - это идентификатор последней сборки запуска (такой же, как LastGoodBuildUri)
  5. Запускаем сборку. Рабочие элементы и наборы изменений, которые были связаны с удаленными сборками, будут повторно связаны с новой сборкой.
person Zvonko    schedule 27.06.2015