2016-09-29 6 views
0

git_revwalkを使って(Objective-GitのGTEnumeratorで)、最近更新された最新の分岐を最初に取得しようとしています。コミット日付でソートされたrefを付けてgt_revwalk_pushと呼んでいますが、何の効果もありません。ソート済み、逆ソート済み、ソート済みのすべてが同じになります。git_revwalkはプッシュされた参照の順序を無視しますか?

を使用しない場合は、GIT_SORT_TOPOLOGICALは使用できませんが、トポロジカルな順序が必要なので、両方のフラグを設定しています。

git_revwalkに私が指摘した順序で参照を使用する方法はありますか?

+0

私はObjective-Gitは何も知りませんが、topo sort *と* time-based sortを求めているのは、1が12よりも小さいので正午までに1 PMを求めるようなものです。基準:両方を得ることはできません。 – torek

+0

両方のフラグを使用すると、並列ブランチからのコミットが互いに対してソートされることが予想されます。それは、位相的秩序に違反することなく、限られた範囲で可能である。しかし、とにかく、それは私の本当の問題に接しています。たとえば、私が最初にプッシュしたのは最新のコミットが最初に出てくるはずなのに、それは起こっていないと思います。 – Uncommon

+0

...もちろん、最初のrefは子供がいないコミットを指していると仮定しています。これはテストケースで行います。 – Uncommon

答えて

1

libgit2は、複数の可能なトポロジカルソートがすべて正しいので、gitと全く同じトポロジカルソートを提供しないことがよくあります。

A recent PR他の理由で出力をより一貫性のあるものにするためにgitのコードを移植しました。トポロジカルと時間ベースの並べ替え(GIT_SORT_TOPOLOGICAL | GIT_SORT_TIME)を指定すると、git rev-list--date-orderに相当し、現在のmasterで要望したヒントを並べ替えます。

+0

ありがとうもう一度:) – Uncommon

+0

私はついにこれを試す機会を得ました。 – Uncommon

関連する問題