Team Foundation Server: получение идентификатора набора изменений из объекта PolicyBase - PullRequest
1 голос
/ 24 октября 2011

Я пишу пользовательскую политику регистрации в Visual Studio 2010 с использованием C #. Я расширил класс PolicyBase и переопределил метод Evaluate (), чтобы я мог проверить, что комментарий пользователя о регистрации содержит конкретную информацию. Я получаю комментарий пользователя о регистрации с помощью this.PendingCheckin.PendingChanges.Comment

То, что я хотел бы сделать, это вытащить номер набора изменений, который будет назначен для регистрации. Где и как я могу получить этот номер?

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

ТИА

1 Ответ

2 голосов
/ 24 октября 2011

Вы не можете сделать это с какой-либо степенью уверенности с политикой регистрации, поскольку они оцениваются только pre-checkin . Сервер присваивает вам набор изменений при регистрации.

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

При этом вы можете получить данные о регистрации вне рамок политики регистрации . Вы можете либо подключить событие CommitCheckin к экземпляру Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer, либо вы можете подключить предупреждение, которое уведомит вас, когда произойдет регистрация .

...