【问题标题】:TFS API: How Do I Get a File's History?TFS API:如何获取文件的历史记录?
【发布时间】:2019-08-23 19:48:33
【问题描述】:

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

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

我尝试过同时使用 TfvcHttpClient 和原始 TFS API(手动构建我的 http GET 请求),但我似乎找不到实现这一点的方法。

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

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

这可能吗?

谢谢!

【问题讨论】:

  • 为了进一步澄清,这是 TFS 2017,我没有使用 Git(对我的 shigrin 来说很重要)。使用所有 TFS 源代码管理

标签: tfs visual-studio-2017


【解决方案1】:

Rest API 请求:

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

在请求正文中:

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

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

遗憾的是,我很难找到有关此的任何文档:/

【讨论】:

  • 是的,你是对的。这里有同样的答案:stackoverflow.com/questions/50857789/…
  • @D.J.这做到了!疯狂的是如何没有关于此的文档。大多数开发人员会做的事情(从文件角度查看更改历史记录)没有记录。如果没有记录,那你是怎么知道的?
  • @MichaelMcCarthy 如果我知道 tfs/devops 的 web 门户可以为我提供我在 rest-api 文档中找不到的功能或数据,我打开 webdeveloper-tools 并跟踪请求以及来自我的浏览器的响应。这可能有效,但我不得不依赖这个太多次以满足我的喜好:/
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    核心网址是: 获取 {tfsurl}/{organization}/{project}/_apis/tfvc/changesets?api-version=5.0

    【讨论】:

    • 虽然理论上这可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。
    【解决方案4】:

    您也可以使用 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
    

    【讨论】:

      猜你喜欢
      • 2013-07-03
      • 1970-01-01
      • 2015-12-10
      • 2014-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多