【问题标题】:How to obtain number of commits behind/ahead with libgit2sharp?如何使用 libgit2sharp 获取后面/前面的提交数量?
【发布时间】:2017-10-03 11:37:47
【问题描述】:

可以使用git rev-list 命令获取后面/前面的提交数。我正在尝试使用 libgit2sharp 库来实现相同的目的,但该库没有完整记录,所以我找不到如何去做。

我正在寻找使用libgit2sharp 获取落后/提前提交编号的示例。

【问题讨论】:

  • 如果你只是想在本地分支和它被跟踪的分支之间获取后面/前面的提交,你可以只使用 Branch.TrackingDetails 属性,它在幕后使用 Jason 的 HistoryDivergence 类哈斯拉姆在他的回答中提到了。

标签: git libgit2 libgit2sharp git-rev-list


【解决方案1】:

完成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 函数。

    【讨论】:

    • 构造函数被声明为内部的,那么如何使用呢?
    • 查看接受的答案。它可能更正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多