Czy istnieje konwencja dotycząca kolejności rodziców popełnienia przestępstwa?Git Commit Parents 'Order
Ponieważ jedno z rodziców popełniają powinno być być poprzednie popełnić na bieżącym oddział które jest połączone w, a reszta to poprzednia commity pozostałych gałęziach łączących.
Chciałbym zidentyfikować poprzedniego popełnić obecnego oddziału używam pygit
która zwraca listę rodziców dla commit i intuicyjnie Myślałem, że może kolejność rodziców ma znaczenie, ale nie znalazłem jawne wspomnieć o tym.
Napisałem tę funkcję użytkową, stosując pierwszego rodzica commit przemierzać Branża:
def walk_branch(pygit_repository, branch_oid):
"""
Walk a single branch
"""
from pygit2 import GIT_SORT_TOPOLOGICAL
previous_first_parent_oid = None
for commit in pygit_repository.walk(branch_oid, GIT_SORT_TOPOLOGICAL):
if previous_first_parent_oid is None or commit.oid == previous_first_parent_oid:
previous_first_parent_oid = commit.parents[0].oid if len(commit.parents) else None
yield commit
Nie wiem o libgit2 i pygit2, ale "pierwszym" rodzicem jest zawsze ten z gałęzi, w której byłeś, kiedy robiłeś 'git merge'. Jest to pierwszy wyciąg z "- pierwszego-rodzica", i jest pierwszym w surowym wyjściu z 'git cat-file -p somerev'. Pozostali rodzice to oddziały, z których "połączono". – torek
Dzięki, nie wiedziałem o terminie "pierwszego rodzica". –