2010-08-17 3 views
4

두 빌드간에 모든 작업 항목을 가져 오려고합니다. 이 작업을 완료하는 한 가지 방법 만 볼 수 있습니다. 시작 및 끝 변경 집합을 가져와 각각에 대한 작업 항목을 가져옵니다. 내가 가진 문제는 빌드 번호에서 변경 집합으로 이동하는 것입니다. 관련된 변경 집합 가져 오기를 시도했지만 이전 버전의 변경 집합 만 가져 오기 때문에 작동하지 않습니다.특정 빌드 간의 변경 집합을 얻는 중

아무도 도와 줄 수 있습니까?

+0

이 답변이 정확한 질문에 제공된 다음과 같습니다 http://stackoverflow.com/questions/3821734/show-all-changesets - 두 레이블 사이. –

+1

TFS를 사용하고 있습니까? – JBone

답변

3

이 코드는 두 개의 레이블 사이의 모든 변경 집합을 얻을 것이다 :

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(); 
관련 문제