diff options
| author | 2026-03-06 21:19:38 +0800 | |
|---|---|---|
| committer | 2026-03-06 21:19:38 +0800 | |
| commit | 04e1b6bf4a47bfd99af703e6421e039a969fc6de (patch) | |
| tree | cf073be8e83fa11feff5e11c145afc42867d0712 /reachability | |
| parent | README: Add more future things (diff) | |
| signature | No signature | |
reachability: Peel root to commit
Diffstat (limited to 'reachability')
| -rw-r--r-- | reachability/ancestor.go | 4 | ||||
| -rw-r--r-- | reachability/peel.go | 10 |
2 files changed, 5 insertions, 9 deletions
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} } |
