0

这是使用 TFS2010 API。

给定文件名,我需要获取文件的文件夹路径等详细信息,最后签入的人,最后签入的日期时间。

有没有 API/WIQL 可以帮助解决这个问题?

4

1 回答 1

2

对于第一部分,从文件名中检索该文件的 SourceControl 路径,除此之外我找不到任何其他内容:

tf dir $/*file.cs /recursive /server:http://TFSServer:8080

获得文件的 SourceControl 路径后,您可以尝试以下操作:

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

namespace ChangesetDetails
{
    class Program
    {
        static void Main(string[] args)
        {
            TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://TFSServer:8080"));
            VersionControlServer vcs = (VersionControlServer) tpc.GetService(typeof (VersionControlServer));

            IEnumerable results = vcs.QueryHistory(@"$/../file.cs", 
                                                    VersionSpec.Latest, 0, RecursionType.Full, null, null, null, int.MaxValue, true, true);
            List<Changeset> changesets = results.Cast<Changeset>().ToList();
            Changeset latestChangeset = changesets.ElementAt(0);
        }
    }
}

这将获得 的最新变更集$/../file.cs,然后可以显示您所追求的属性:

string lastCommiter = latestChangeset.Owner;
DateTime dateCommited =  latestChangeset.CreationDate;
于 2011-11-29T10:16:54.407 回答