git_revwalk игнорирует порядок нажатых ссылок?

В использовании git_revwalk (через Objective-Git's GTEnumerator), Я пытаюсь получить более недавно обновленные ветки, заказанные в первую очередь. Я зову gt_revwalk_push с ссылками, отсортированными по дате фиксации, но это не имеет никакого эффекта. Сортировка, обратная сортировка и несортированная все получаются одинаковыми.

С помощью GIT_SORT_TIME без GIT_SORT_TOPOLOGICAL подходит близко, но мне нужен топологический порядок, поэтому я устанавливаю оба флага.

Есть ли способ получить git_revwalk использовать ссылки в порядке, который я им даю?

1 ответ

Решение

libgit2 часто не обеспечивает такой же топологической сортировки, как git, так как существует несколько возможных топологических сортировок, которые являются правильными.

Недавний PR портировал больше кода из git, чтобы сделать вывод более согласованным по другим причинам, так что вы воспользуетесь этим. Указание топологической и временной сортировки (GIT_SORT_TOPOLOGICAL | GIT_SORT_TIME), эквивалентно git rev-list"s --date-order отсортирует запрошенные вами подсказки по времени с текущей master,

Другие вопросы по тегам