Có một số quy ước cho lệnh của cha mẹ của một người cam kết không?Git Cam kết đơn đặt hàng của cha mẹ
Bởi vì một trong những bậc phụ huynh cam kết của nên được để trước cam kết về chi nhánh hiện tại đang được sáp nhập vào và phần còn lại là cam kết trước đó của các ngành sáp nhập khác.
Tôi muốn xác định cam kết trước đó của chi nhánh hiện tại, Tôi đang sử dụng pygit
mà trả về một danh sách các bậc cha mẹ cho một cam kết và trực giác tôi nghĩ có lẽ thứ tự của các bậc cha mẹ có ý nghĩa nhưng tôi đã không tìm thấy rõ ràng đề cập đến điều này.
tôi đã viết chức năng tiện ích này, sử dụng đầu tiên mẹ cam kết đi qua chi nhánh:
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
Tôi không biết về libgit2 và pygit2 nhưng bố mẹ "đầu tiên" luôn là phụ huynh từ nhánh bạn đang truy cập khi bạn thực hiện 'git merge'. Đây là một trong những chiết xuất '--first-parent', và nó là phần đầu tiên trong đầu ra thô từ' git cat-file -p somerev'. Các bậc cha mẹ còn lại là các nhánh được "sáp nhập". – torek
Cảm ơn, tôi không biết về cụm từ "cha mẹ đầu tiên". –