From 04e1b6bf4a47bfd99af703e6421e039a969fc6de Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 6 Mar 2026 21:19:38 +0800 Subject: reachability: Peel root to commit --- reachability/ancestor.go | 4 ++-- reachability/peel.go | 10 +++------- 2 files changed, 5 insertions(+), 9 deletions(-) (limited to 'reachability') diff --git a/reachability/ancestor.go b/reachability/ancestor.go index 211aed01..584ec0e3 100644 --- a/reachability/ancestor.go +++ b/reachability/ancestor.go @@ -12,12 +12,12 @@ import ( // // Both inputs are peeled through annotated tags before commit traversal. func (r *Reachability) IsAncestor(ancestor, descendant objectid.ObjectID) (bool, error) { - ancestorCommit, err := r.peelRootToDomain(ancestor, DomainCommits) + ancestorCommit, err := r.peelRootToCommit(ancestor) if err != nil { return false, err } - descendantCommit, err := r.peelRootToDomain(descendant, DomainCommits) + descendantCommit, err := r.peelRootToCommit(descendant) if err != nil { return false, err } diff --git a/reachability/peel.go b/reachability/peel.go index e8120ef7..5f24982e 100644 --- a/reachability/peel.go +++ b/reachability/peel.go @@ -6,12 +6,8 @@ import ( "codeberg.org/lindenii/furgit/objecttype" ) -func (r *Reachability) peelRootToDomain(id objectid.ObjectID, domain Domain) (objectid.ObjectID, error) { - err := validateDomain(domain) - if err != nil { - return objectid.ObjectID{}, err - } - +// peelRootToCommit peels annotated tags transitively until a commit is reached. +func (r *Reachability) peelRootToCommit(id objectid.ObjectID) (objectid.ObjectID, error) { for { ty, err := r.readHeaderType(id) if err != nil { @@ -19,7 +15,7 @@ func (r *Reachability) peelRootToDomain(id objectid.ObjectID, domain Domain) (ob } if ty != objecttype.TypeTag { - if domain == DomainCommits && ty != objecttype.TypeCommit { + if ty != objecttype.TypeCommit { return objectid.ObjectID{}, &ObjectTypeError{OID: id, Got: ty, Want: objecttype.TypeCommit} } -- cgit v1.3.1-10-gc9f91