【问题标题】:Equivalent to QueryHistory For TFS 2013 + Git相当于 TFS 2013 + Git 的 QueryHistory
【发布时间】:2015-02-10 03:25:27
【问题描述】:

当存储库为 TFS 2013 + Git 时,我想获取触发构建定义的签入。

我的第一个方法是:

var commits = buildDetail.Information.GetNodesByType("AssociatedCommit")

我从How to retrieve changesets associated with a build in TFS 2013 with Git? 获得的内容在构建完成时效果很好,但是在构建过程中它无法返回任何内容。我可能在这里遗漏了一些东西,所以如果你知道我在上面做错了什么,请忽略这篇文章的其余部分。

我的下一个想法是获取构建定义的工作区映射并针对该路径查询签入。

对于 TFS 中的非 git 项目,您曾经能够为这样的路径获取最新的变更集:

versionControlServer = projectCollection.GetService<VersionControlServer>();
versionControlServer.QueryHistory(path,
    VersionSpec.Latest,
    DELETION_ID,
    RecursionType.Full,
    null,
    null,
    VersionSpec.Latest,
    1,
    true,
    false,
    true)

但是 TFS 2013 + Git 不使用变更集,它使用提交(更不用说分支方面的差异,甚至在工作区映射 api 中似乎都没有),因此 API 似乎完全不同。但似乎没有任何关于新 API 是什么的文档。

任何我可能错过的文档链接、替代方法或见解将不胜感激。

【问题讨论】:

    标签: tfs


    【解决方案1】:

    我永远无法用 GetNodesByType() 或 GetService() 解决这个问题。最终的解决方案是获取工作区映射(无分支信息),确定它与哪个存储库关联,并查询与存储库关联的所有分支的最新提交(不太理想)。

    如果您对详细信息感兴趣,我在一篇博文中记录了我的TFS 2013 + Git API pain,但简短的版本是像这样使用commit's api endpoint

    GET http://tfs:8080/tfs/_apis/git/repositories/51/commits?top=1
    

    【讨论】:

      猜你喜欢
      • 2021-09-27
      • 2014-07-30
      • 2014-04-17
      • 2016-04-20
      • 1970-01-01
      • 2020-07-27
      • 2021-05-28
      • 2021-03-02
      • 2013-03-18
      相关资源
      最近更新 更多