使用libgit2sharp
,如何计算ahead
或behind
指标。喜欢这个页面https://github.com/libgit2/libgit2sharp/branches
答案 0 :(得分:8)
如何计算提前或落后的指标
每个Branch
都有一个TrackingDetails
属性。此属性公开AheadBy
和BehindBy
可空值(当分支没有上游配置或上游分支不存在时,将返回null。)
这些值将表示本地分支与上游分支(即跟踪的远程分支)相比提前/后的提交次数。
这会产生与git status -sb
此页面实际上将上游的每个分支(即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)