使用TFS API,是否可以获得最后一次检查文件的人

时间:2011-11-29 09:25:15

标签: tfs2010

这是使用TFS2010 API。

鉴于文件名,我需要获取文件的文件夹路径等详细信息,该文件是最后一次检查的最后一个日期时间。

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

1 个答案:

答案 0 :(得分:2)

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

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;