如何在git2go(libgit2)中列出包含给定提交的分支?

时间:2015-07-20 23:21:10

标签: git go libgit2

给定一个特定的引用(在这种情况下是一个标记),如何在git2go中列出包含该提交的分支?与git branch --contains <commit>类似。

1 个答案:

答案 0 :(得分:1)

这里的问题,图形方面是“我怎么知道A是否是B的祖先?” (对于你想成为B的每个分支重复几次)。回答这个问题的唯一方法是从B开始走下历史图表并检查是否找到A。

你可以通过几种方式实现这一目标,但最有效的方法通常是将问题减少到相同的“A是A和B的合并基础吗?”。您可以通过Repository.MergeBase()在git2go中提出此问题。这将返回您提供的两个提交之间的最佳合并基础。如果您希望其中一个提交是合并基础,这应该始终提供正确的答案,即使它将答案缩减到单个合并基础。