TFS API:如何获取文件的历史记录?

时间:2019-04-02 13:04:41

标签: tfs visual-studio-2017 tfs2017

不仅使用TFS API,而且使用.NET客户端库来获取所有变更集,特定变更集,甚至查找文件的特定版本(具有变更集ID)非常简单。

但是,我似乎无法弄清楚的是文件的名称/路径,以及特定的分支是如何检索该文件的变更集历史记录。

我尝试同时使用TfvcHttpClient和原始TFS API(手动构建我的http GET请求),但似乎无法找到实现此目标的方法。

这与在Visual Studio 2017中查看文件的历史非常相似:

enter image description here

我实际上是在寻找一种通过TFS API将信息返回给我的方法。

这可能吗?

谢谢!

4 个答案:

答案 0 :(得分:2)

其他API请求:

{tfsurl}/{project}/_api/_versioncontrol/history" 

在请求正文中:

{repositoryId: "", searchCriteria: "{"itemPath":"$/YourProject/YourFile","itemVersion":"T","top":50}"} 

它将从您的身体返回itemPath的历史记录。

可悲的是,我很难找到与此有关的任何文档:/

答案 1 :(得分:0)

我在这里找不到对tfvc的任何历史记录请求-Rest Api TFVC Version Control

作为解决方法,您可以尝试运行tf.exe history并解析输出。

答案 2 :(得分:0)

根据您使用的API版本,这是变更集的参考信息。

https://docs.microsoft.com/en-us/rest/api/azure/devops/tfvc/changesets/get%20changesets?view=azure-devops-rest-5.0

核心网址是: GET {tfsurl} / {organization} / {project} / _ apis / tfvc / changesets?api-version = 5.0

答案 3 :(得分:0)

您也可以使用TfvcHttpClientBase.GetChangesetsAsyncTfvcChangesetSearchCriteria的ItemPath属性来完成此操作

这是Powershell中的一个例子

 $tfvcSearchCriteria = [Microsoft.TeamFoundation.SourceControl.WebApi.TfvcChangesetSearchCriteria]::new()
 $tfvcSearchCriteria.FollowRenames = $true
 $tfvcSearchCriteria.ItemPath = $ItemPath

 $result = $TfvcHttpClient.GetChangesetsAsync($null, $null, $null, $null, $tfvcSearchCriteria).Result