如何计算分支前后

时间:2013-11-12 13:48:46

标签: libgit2sharp

使用libgit2sharp,如何计算aheadbehind指标。喜欢这个页面https://github.com/libgit2/libgit2sharp/branches

2 个答案:

答案 0 :(得分:8)

  

如何计算提前或落后的指标

每个Branch都有一个TrackingDetails属性。此属性公开AheadByBehindBy可空值(当分支没有上游配置或上游分支不存在时,将返回null。)

这些值将表示本地分支与上游分支(即跟踪的远程分支)相比提前/后的提交次数。

这会产生与git status -sb

类似的结果
  

喜欢这个网页https://github.com/libgit2/libgit2sharp/branches

此页面实际上将上游的每个分支(即GitHub上托管的分支)与远程HEAD的当前提示进行比较。 LibGit2Sharp中没有此功能(比较两个本地分支)。

如果您对此感兴趣,请随时 open a feature request

更新

引入新方法repo.ObjectDatabase.CalculateHistoryDivergence(Commit, Commit)的拉取请求(请参阅 #564 )正在制作中。

这将允许用户确定先行和后置计数,以及用于计算这些距离的合并基础。

答案 1 :(得分:0)

对于那些搜索(从pygit2 v 0.27.4开始),API为ahead_behind

示例代码摘要:


    import pygit2
    repo = pygit2.Repository('your-repo-path')

    upstream_head = repo.revparse_single('origin/HEAD')
    local_head    = repo.revparse_single('HEAD')

    diff = repo.ahead_behind(local_head.id, upstream_head.id)