2012-06-20 8 views

Odpowiedz

4

Jeśli masz elektronarzędzia TFS zainstalowane można użyć polecenia " tfpt searchcs "z wiersza poleceń programu visual studio. Umożliwi to wyszukanie wszystkich zestawów zmian zaznaczonych przez konkretnego użytkownika, a także ustawienie daty początkowej i końcowej obok innych filtrów. To może zaspokoić Twoje potrzeby

4

Myślę, że nie jest możliwe przechodzenie do plików każdego zestawu zmian użytkownika w danym okresie, przy użyciu standardowego mechanizmu raportowania TFS.

Poniższa używa TFS-SDK & powinien wykonać zadanie:

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, ""); 
     } 
    } 
} 

GetDateVSpec została skopiowana z this postu Robaticus

Powiązane problemy