4

使用libgit2sharp、如何计算aheadbehind度量。喜欢这个页面https://github.com/libgit2/libgit2sharp/branches

4

2 回答 2

9

如何计算提前或落后指标

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

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

这输出类似的结果git status -sb

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

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

如果您对此感兴趣,请随时打开功能请求

更新

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

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

于 2013-11-12T14:48:39.337 回答
3

对于那些搜索(从 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)

于 2019-03-16T19:37:46.957 回答