API клиента C# TFS - получить все наборы изменений элемента

Клиент Microsoft TFS для VS 2010:

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.item(v=vs.100).aspx

  • У меня (т.е. мой код) есть набор изменений.
  • Я перехожу к конкретному Изменению.
  • У меня есть пункт в замене.

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

Может ли кто-нибудь посоветовать мне лучший способ сделать это?

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

1 ответ

Решение

Эдвард прав. И у него есть полномочия, чтобы поддержать это. (См. Описание его профиля) VersionControlServer.QueryHistory - метод, который вам нужно использовать. Есть несколько способов его использования, и я только опишу один из них, который предполагает, что путь к серверу для этого элемента важен для вас...

Во-первых, вам нужен путь к серверу Item:

string serverPath = Item.ServerItem;

Далее, если у вас еще нет экземпляра объекта VersionControlServer, вы можете получить его из вашего TeamProject следующим образом:

VersionControlServer VCServer = (VersionControlServer)this.TeamProject.Store.TeamProjectCollection.GetService(typeof(VersionControlServer));

Используйте метод VersionControlServer QueryHistory(string, boolean) для получения других наборов изменений, связанных с этим путем к серверу:

VCServer.QueryHistory(serverPath, false);
Другие вопросы по тегам