我正在尝试使用libgit2执行以下操作:
git log -z --all --topo-order
我遇到了麻烦:1)找到最简单的方法将所有裁判推进到revwalker中; 2)以相同的顺序获得结果。虽然我尝试过各种拓扑和时间排序组合,但我仍然看到较旧的分支出现在顶部附近。
我最近的尝试涉及调用git_revwalk_push_glob(walk, "refs/*")
,但并非所有分支都出来了。一个测试仓库有两个本地分支,一个(当前一个)缺失。
我实际上是在Objective-git中这样做,但是GTEnumerator接口有点受限,所以我不得不扩展它。
更新:我继续手动推送refs / heads,refs / remotes和refs / tags(以及所有的藏匿处,因为我实际上想要的不仅仅是顶部)。订购问题仍然存在。