如何使用libgit2sharp获取在当前分支中落后/超前的提交数?

5
使用git rev-list命令可以获得落后/超前提交次数。我希望使用libgit2sharp库实现同样的功能,但是该库没有完全文档化,所以我无法找到如何实现。
我正在寻找一个使用libgit2sharp获取落后/超前提交次数的示例。

如果您只想获取本地分支和其跟踪分支之间的提交差异,您可以使用Branch.TrackingDetails属性,该属性在幕后使用Jason Haslam在他的答案中提到的HistoryDivergence类。 - yorah
2个回答

5

以下是Jason Haslam的答案补充...下面是如何使用HistoryDivergence获取每个分支前后提交数的示例:

using (var repo = new Repository("/path/to/repo"))
{
     foreach (Branch b in repo.Branches)
     {
               // if branch does not have a remote b.TrackingDetails.AheadBy and b.TrackingDetails.BehindBy will be both null
               var commitsAhead = b.TrackingDetails.AheadBy;
               var commitsBehind = b.TrackingDetails.BehindBy;
               Console.WriteLine($"Branch {b.FriendlyName} is {commitsAhead} ahead and {commitsBehind} behind");
      }
}

2

看一下 HistoryDivergence 类。它是从 libgit2 中的 git_graph_ahead_behind 函数进行了适配。


构造函数被声明为内部函数,那么它如何被使用呢? - Triynko
请查看被采纳的答案,它很可能更正确。 - Jason Haslam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接