8

libgit2を使用して、次のことと同等のことをしようとしています:

git log -z --all --topo-order

1) すべての参照を revwalker にプッシュする最も簡単な方法を見つけ、2) 同じ順序で結果を取得することに問題があります。トポロジカルソートと時間ソートのさまざまな組み合わせを試してみましたが、古いブランチが上部近くに表示され続けています。

私の最近の試みには の呼び出しgit_revwalk_push_glob(walk, "refs/*")が含まれていましたが、すべてのブランチが出てきたわけではありません。1 つのテスト リポジトリには 2 つのローカル ブランチがあり、1 つ (現在のブランチ) がありませんでした。

私は実際に客観的な git でこれを行っていますが、GTEnumerator インターフェイスは少し制限されているため、拡張する必要があります。

更新:私は手動で refs/heads、refs/remotes、および refs/tags をプッシュしました (実際にはトップ以上のものを必要とするため、すべての stash も同様です)。順序の問題は残ります。

4

0 に答える 0