aboutsummaryrefslogtreecommitdiff
path: root/reachability/peel.go
diff options
context:
space:
mode:
Diffstat (limited to 'reachability/peel.go')
-rw-r--r--reachability/peel.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/reachability/peel.go b/reachability/peel.go
index 9df9bb4d..7b9e7bf1 100644
--- a/reachability/peel.go
+++ b/reachability/peel.go
@@ -7,18 +7,22 @@ import (
)
func (r *Reachability) peelRootToDomain(id objectid.ObjectID, domain Domain) (objectid.ObjectID, error) {
- if err := validateDomain(domain); err != nil {
+ err := validateDomain(domain)
+ if err != nil {
return objectid.ObjectID{}, err
}
+
for {
ty, err := r.readHeaderType(id)
if err != nil {
return objectid.ObjectID{}, err
}
+
if ty != objecttype.TypeTag {
if domain == DomainCommits && ty != objecttype.TypeCommit {
return objectid.ObjectID{}, &ErrObjectType{OID: id, Got: ty, Want: objecttype.TypeCommit}
}
+
return id, nil
}
@@ -26,10 +30,12 @@ func (r *Reachability) peelRootToDomain(id objectid.ObjectID, domain Domain) (ob
if err != nil {
return objectid.ObjectID{}, err
}
+
tag, err := object.ParseTag(content, id.Algorithm())
if err != nil {
return objectid.ObjectID{}, err
}
+
id = tag.Target
}
}