2012-06-20 20 views

Respuesta

4

Si usted tiene las herramientas eléctricas TFS instalado, puede utilizar el comando " tfpt searchcs "desde el símbolo del sistema de Visual Studio. Esto le permitirá buscar todos los conjuntos de cambios registrados por un usuario en particular y también establecer una fecha de inicio y final junto con otros filtros. Esto podría satisfacer sus necesidades

4

Creo que no es posible desglosar los archivos de cada conjunto de cambios de un usuario dentro de un marco de tiempo determinado utilizando las funciones de informes estándar de TFS.

A continuación se utiliza el TFS-SDK & debe cumplir con la tarea:

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

El GetDateVSpec fue copiado de this mensaje por Robaticus

Cuestiones relacionadas