Как вы можете предсказать / получить следующий ChangeSetId перед проверкой файлов с помощью TFS SDK - PullRequest
2 голосов
/ 19 января 2011

У меня есть требование для создания пользовательской политики TFS с использованием C # и TFS 2010 SDK. Эта политика будет проверять, что пользовательская заметка (ошибка #) заполняется в диалоге проверки TFS, а затем обновляет систему отслеживания ошибок после успешной проверки ошибки #.

Как только я подтвердил ошибку #, я бы использовал SDK систем отслеживания ошибок, чтобы обновить # ошибку с именами исходных файлов и ChangeSetID.

Проблема, с которой я столкнулся, заключается в том, что, похоже, TFS SDK не предоставляет функциональные возможности для получения следующего доступного ChangeSetID, который будет использоваться как часть регистрации. Кажется, нет способа получить эту информацию. Прямой доступ к БД - не вариант (я думал о том, чтобы сделать что-то вроде SELECT ChangeSetId.nextVal).

Может кто-нибудь сообщить мне, если это вариант с TFS SDK? Я пытаюсь обновить систему отслеживания ошибок во время выполнения моей пользовательской политики, поэтому мне не нужно создавать другой процесс для обновления системы отслеживания ошибок после факта.


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

Ответы [ 2 ]

2 голосов
/ 19 января 2011

Звучит так, как будто это должны быть две разные вещи:

  1. Политика, обеспечивающая заполнение номера ошибки
  2. Пользовательский обработчик события для обработки события регистрации. Это, естественно, будет иметь доступ к номеру набора изменений и может обновить систему отслеживания ошибок.
1 голос
/ 19 января 2011

Я сомневаюсь, что это было бы возможно. Даже если бы вы могли получить следующий идентификатор, нет никакой гарантии, что кто-то другой не будет использовать его до вас.

Что, если регистрация была осуществлена ​​в ветке - затем вы используете идентификатор регистрации для ветви, а затем, после проверки, объединили ветку с основной линией?

...