2012-06-20 3 views

Antwort

4

Wenn Sie die TFS Power Tools installiert Sie den Befehl verwenden können " tfpt searchcs "von einer Visual Studio-Eingabeaufforderung. Auf diese Weise können Sie nach allen Änderungssätzen suchen, die von einem bestimmten Benutzer eingecheckt wurden, und neben anderen Filtern ein Start- und Enddatum festlegen. Dies könnte Ihre Bedürfnisse erfüllen

4

Ich denke, es ist nicht möglich, innerhalb eines bestimmten Zeitraums auf die Dateien jedes changeset eines Benutzers zu Drilldown durch die Standard-Reporting-Funktionen von TFS verwenden.

Nachfolgend verwendet das TFS-SDK & die Aufgabe erfüllen sollte:

using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Linq; 
using Microsoft.TeamFoundation.Client; 
using Microsoft.TeamFoundation.VersionControl.Client; 

namespace GetCheckedInFiles 
{ 
    class Program 
    { 
     static void Main() 
     { 
      TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfsURI")); 

      var versionControl = teamProjectCollection.GetService<VersionControlServer>(); 

      //enforcing 3 days as "past few days": 
      var deltaInDays = new TimeSpan(3, 0, 0, 0); 
      DateTime date = DateTime.Now - deltaInDays; 

      VersionSpec versionFrom = GetDateVSpec(date); 
      VersionSpec versionTo = GetDateVSpec(DateTime.Now); 

      IEnumerable results = versionControl.QueryHistory("$/", VersionSpec.Latest, 0, RecursionType.Full, "User" , versionFrom, versionTo, int.MaxValue, true, true); 
      List<Changeset> changesets = results.Cast<Changeset>().ToList(); 

      if (0 < changesets.Count) 
      { 
       foreach (Changeset changeset in changesets) 
       { 
        Change[] changes = changeset.Changes; 
        Console.WriteLine("Files contained in "+changeset.ChangesetId+" at "+changeset.CreationDate+" with comment "+changeset.Comment); 

        foreach (Change change in changes) 
        { 
         string serverItem = change.Item.ServerItem; 
         Console.WriteLine(serverItem + " "+change.ChangeType); 
        } 
        Console.WriteLine(); 
       } 
      } 

     } 

     private static VersionSpec GetDateVSpec(DateTime date) 
     { 
      string dateSpec = string.Format("D{0:yyy}-{0:MM}-{0:dd}T{0:HH}:{0:mm}", date); 
      return VersionSpec.ParseSingleSpec(dateSpec, ""); 
     } 
    } 
} 

Die GetDateVSpec wurde aus this Beitrag von Robaticus kopiert

Verwandte Themen