2016-09-29 2 views
0

In der Verwendung von git_revwalk (durch Objective-Git GTEnumerator), versuche ich, neuere Zweige zuerst bestellt erhalten. Ich rufe gt_revwalk_push mit Refs nach Commit-Datum sortiert, aber es hat keine Wirkung. Sortiert, rückwärts sortiert und unsortiert kommen alle gleich raus.git_revwalk ignoriert die Reihenfolge der Push-Refs?

Mit GIT_SORT_TIME ohne GIT_SORT_TOPOLOGICAL kommt in der Nähe, aber ich brauche eine topologische Reihenfolge, also setze ich beide Flags.

Gibt es eine Möglichkeit, git_revwalk die Refs in der Reihenfolge zu verwenden, die ich ihnen gebe?

+0

Ich weiß nichts von Objective-Git, aber fragen nach einem Topo sortieren * und * eine zeitbasierte Sortierung ist wie bitten um 1 Uhr vor Mittag zu kommen, weil 1 weniger als 12 ist. Sie müssen auf einer dieser beiden aufgeben Kriterien: Sie können nicht beide bekommen. – torek

+0

Mit beiden Flags würde ich erwarten, dass Commits von parallelen Zweigen relativ zueinander sortiert werden. Dies wäre in begrenztem Umfang ohne Verletzung der topologischen Ordnung möglich. Aber das tangiert mein eigentliches Problem. Ich würde zum Beispiel erwarten, dass das neueste Commit zuerst herauskommen sollte, denn das ist der Verweis, den ich zuerst gedrängt habe, und das passiert nicht. – Uncommon

+0

... natürlich geht das davon aus, dass der erste ref auf einen Commit ohne Kinder verweist, was er in meinem Testfall tut. – Uncommon

Antwort

1

libgit2 würde oft nicht die gleiche topologische Sortierung wie git bieten, da es mehrere mögliche topologische Sortierungen gibt, die alle korrekt sind.

A recent PR über mehr Code von Git portiert, um die Ausgabe aus anderen Gründen konsistenter zu machen, so dass Sie davon Gebrauch machen. Wenn Sie sowohl eine topologische als auch eine zeitbasierte Sortierung angeben (GIT_SORT_TOPOLOGICAL | GIT_SORT_TIME), entspricht die git rev-list--date-order die von Ihnen angeforderten Tipps nach der aktuellen master.

+0

Danke nochmal :) – Uncommon

+0

Ich habe endlich eine Chance, dies auszuprobieren, und es funktioniert super. – Uncommon

Verwandte Themen