#git #git-rev-list #git-plumbing
#git #git-rev-list #git-сантехника
Вопрос:
Я почти могу получить упорядочение по глубине git rev-list --in-commit-order --objects --reverse HEAD
, которое дает мне что-то вроде
commit A
tree AA
blob A
blob B
commit B
tree BA
...
Когда я хочу
blob B
blob A
tree AA
commit A
...
Последующая обработка списка в глубину сначала не является прямой, потому что два дерева общего происхождения могут иметь один и тот же дочерний элемент, например
tree A is parent of tree B and blob A
tree B is parent of blob A
Комментарии:
1. Я не думаю, что это возможно.
2.
git rev-list
Я сомневаюсь, что в одиночку, возможно, с дополнительным скриптом для чтения и изменения порядка вывода. Не могли бы вы описать, как вы собираетесь использовать выходные данные?3. @LeGEC Я шифрую граф объектов, поэтому мне нужно сначала пройти глубину дерева Меркле, чтобы перестроить его.
4. Проблема с переупорядочением ввода, которое я делаю в настоящее время, заключается в том, что если дерево A и дерево-потомок B совместно используют blob A, blob A отображается более близко к дереву A. Возможно, мне придется просто пройтись по графику самостоятельно.