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

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

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

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

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.

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

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

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

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

  1. Удалите последние несколько сборок (и убедитесь, что метки для этих сборок удалены).
  2. Подключиться к базе данных TFS.
  3. Открытый стол tbl_BuildDefinition
  4. Найдите определение сборки, для которого вы хотите повторно связать наборы изменений и изменить значения в LastBuildUri, LastGoodBuildUri а также LastGoodBuildLabel где:
    • LastGoodBuildLabel - это фактическая метка, которая станет новой базовой линией для связи наборов изменений и рабочих элементов со сборкой,
    • LastGoodBuildUri - это идентификатор сборки, которая создала последний ярлык, который у вас есть в истории исходных текстов (вы можете найти это в своей истории сборок)
    • LastBuildUri - это идентификатор последней запущенной сборки (такой же, как LastGoodBuildUri)
  5. Запустите сборку. Рабочие элементы и наборы изменений, которые были связаны с удаленными сборками, будут повторно связаны с новой сборкой.
Другие вопросы по тегам