通过WebApi获取本地映射文件或目录的TFS信息

时间:2018-09-05 07:43:12

标签: c# tfs tfs2015 tfs-sdk

我想使用Teamfoundation.SourceControl.WebApi根据我们的TFS源代码管理检查更新或本地更改。

我可以从已提交TFS的项目中收集有关变更集的信息,但是我无法基于映射的工作空间内的本地文件路径来收集此信息。

不使用ExtendedClient是否有可能?

我想要这样的东西:

TfvcChangesetSearchCriteria tcsc = new TfvcChangesetSearchCriteria();
tcsc.ItemPath = @"c:\source\mappedtfs\MYPROJECT\src\MainWindow.cs";/*<--- localPath would be nice here*/                
List<TfvcChangesetRef> changerefs = tfvcHttpClient.GetChangesetsAsync("MYPROJECT", null, null, null, null, tcsc).Result;

1 个答案:

答案 0 :(得分:1)

Microsoft.Teamfoundation.SourceControl.WebApi是不与本地工作空间和文件交互的webapi。如果要获取具有本地项目路径的变更集,请在客户端库中使用Microsoft.TeamFoundation.VersionControl.Client

using Microsoft.TeamFoundation.Client;
using System;
using Microsoft.TeamFoundation.SourceControl.WebApi;
using Microsoft.TeamFoundation.VersionControl.Client;
using System.Collections.Generic;

namespace ConsoleX
{
    class Program
    {
        static void Main(string[] args)
        {
            Uri url = new Uri("https://tfsuri");
            TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(url);
            VersionControlServer vcs = ttpc.GetService<VersionControlServer>();
            IEnumerable<Changeset> cses = vcs.QueryHistory("Path here could be local path or server path", RecursionType.Full);
            foreach (Changeset cs in cses)
            {
                Console.WriteLine(cs.ChangesetId);
                Console.WriteLine(cs.Comment);
            }
            Console.ReadLine();
        }
    }
}