2014-06-30 35 views
6

Ich verwende die TFS-Client-API, um eine TFS 2010-Instanz zu testen und abzufragen. Ich muß in der Lage sein, die folgendenWie bekommt man die Geschichte von Checkins/Changsets für ein bestimmtes Team Project?

  • für ein angegebenes Team-Projekt zu tun, sagen: ‚Projekt A‘
  • eine Liste der Geschichte zu diesem Projekt gemacht letzten Check-in Get (sagt die letzten 50 oder die Liste für den letzten Tag)

dann in der Lage sein, durch diese Liste zu durchlaufen und einige Metadaten für die Elemente (Datei- und Ordnernamen im Idealfall)

ich glaube, ich brauche zu verwenden, um die QueryXXX Methoden erhalten in der VersionControlServer-Klasse, kann aber nicht fin d irgendwelche hilfreiche oder klare Beispiele, wie man das benutzt.

Ich habe gesehen, es gibt GetLastestChangesetId-Methode, aber das sieht nicht so aus, als könnte es auf ein bestimmtes Projekt oder Verzeichnis beschränkt werden.

+1

Werfen Sie einen Blick auf meine Antwort hier: http://stackoverflow.com/a/8494788/600559 –

Antwort

13

Das ist ziemlich einfach:

var tfsUrl = "http://myTfsServer:8080/tfs/defaultcollection"; 
var sourceControlRootPath = "$/MyTeamProject"; 
var tfsConnection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(tfsUrl)); 
var vcs = tfsConnection.GetService<VersionControlServer>(); 

var changeSets = vcs.QueryHistory(sourceControlRootPath, RecursionType.Full); 

foreach (var c in changeSets) 
{ 
    var changeSet = vcs.GetChangeset(c.ChangesetId); 
    foreach (var change in changeSet.Changes) 
    { 
     // All sorts of juicy data in here 
    } 

} 
+0

Diese Frage hat mir sehr geholfen. danke –

+0

die saftigen Daten schließen die workitems nicht ein, die verbunden werden :( – XtianGIS

+0

@XtianGIS die verbundenen workitems sind auf dem changeSet Gegenstand – McFixit