Вопрос по tfs, tfs2010 – Вывести список всех файлов, проверенных пользователем в TFS за последние несколько дней

10

У нас есть много проектов с несколькими файлами внутри каждого. Файлы могут быть проверены из основного корня решения, с уровня проекта и с индивидуального уровня.

Есть ли способ найти все файлы, зарегистрированные конкретным пользователем за последние несколько дней, для всех уровней?

Ваш Ответ

2   ответа
4

Я думаю, что невозможно детализировать файлы каждого набора изменений пользователя в течение определенного периода времени, используя стандартные средства отчетности TFS.

Далее используется TFS-SDK & amp; должен выполнить задачу:

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 был скопирован сэтот сообщение от Robaticus

4

Если у вас установлены электроинструменты TFS, вы можете использовать команду & quot; tfpt searchcs & quot; из командной строки визуальной студии. Это позволит вам выполнить поиск всех наборов изменений, зарегистрированных конкретным пользователем, а также установить дату начала и окончания наряду с некоторыми другими фильтрами. Это может удовлетворить ваши потребности

Похожие вопросы