Получение наборов изменений между конкретными сборками - PullRequest
4 голосов
/ 17 августа 2010

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

Может кто-нибудь помочь?

1 Ответ

3 голосов
/ 05 марта 2012

Этот код получит все наборы изменений между двумя метками:

Console.WriteLine("Enter the first build label:");
var firstVersion = Console.ReadLine();
Console.WriteLine("Enter second build label:");
var secondVersion = Console.ReadLine();

var server = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("TFS SERVER INSTANCE"));
var hyperlinker = server.GetService<TswaClientHyperlinkService>();

var versionService = server.GetService<VersionControlServer>();
var changesets = versionService.QueryHistory(@"$/EntDev", VersionSpec.Latest, 0, RecursionType.Full, null,
                       VersionSpec.ParseSingleSpec("L" + firstVersion, null), 
                       VersionSpec.ParseSingleSpec("L" + secondVersion, null), 
                       Int32.MaxValue, 
                       false, 
                       false);
var workItems = new List<WorkItem>();
foreach (Changeset changeset in changesets)
{
  var link = hyperlinker.GetChangesetDetailsUrl(changeset.ChangesetId);
  Console.WriteLine("#" + changeset.ChangesetId.ToString() + " - " + changeset.Comment + " - " + link.ToString());

  workItems.AddRange(changeset.WorkItems);
}
foreach (var item in workItems)
{
  var link = hyperlinker.GetWorkItemEditorUrl(item.Id);
  Console.WriteLine("WI#" + item.Id + " - " + item.Title + " - " + link.ToString());
}
Console.ReadLine();
...