libgit2相当于git log

Unc*_*mon 8 libgit2

我正在尝试使用libgit2执行以下操作:

git log -z --all --topo-order
Run Code Online (Sandbox Code Playgroud)

我遇到了以下问题:1)找到最简单的方法将所有裁判推入到revwalker中; 2)以相同的顺序获得结果.虽然我尝试过拓扑和时间排序的各种组合,但我仍然看到较旧的分支出现在顶部附近.

我的最新尝试包括打电话git_revwalk_push_glob(walk, "refs/*"),但不是所有的分支都出来了.一个测试仓库有两个本地分支,一个(当前一个)缺失.

我实际上是在Objective-git中这样做,但是GTEnumerator接口有点受限,所以我不得不扩展它.

更新:我继续手动推送refs/heads,refs/remotes和refs/tags(以及所有stashes,因为我实际上想要的不仅仅是顶部).订购问题仍然存在.