aboutsummaryrefslogtreecommitdiff
path: root/object/fetch/peel_to_commit_id.go
diff options
context:
space:
mode:
Diffstat (limited to 'object/fetch/peel_to_commit_id.go')
-rw-r--r--object/fetch/peel_to_commit_id.go38
1 files changed, 0 insertions, 38 deletions
diff --git a/object/fetch/peel_to_commit_id.go b/object/fetch/peel_to_commit_id.go
deleted file mode 100644
index 7b58bdea..00000000
--- a/object/fetch/peel_to_commit_id.go
+++ /dev/null
@@ -1,38 +0,0 @@
-package fetch
-
-import (
- giterrors "codeberg.org/lindenii/furgit/errors"
- objectid "codeberg.org/lindenii/furgit/object/id"
- objecttype "codeberg.org/lindenii/furgit/object/type"
-)
-
-// PeelToCommitID peels tags until it reaches a commit object ID.
-func (r *Fetcher) PeelToCommitID(id objectid.ObjectID) (objectid.ObjectID, error) {
- for {
- ty, _, err := r.Header(id)
- if err != nil {
- return objectid.ObjectID{}, err
- }
-
- switch ty {
- case objecttype.TypeCommit:
- return id, nil
- case objecttype.TypeTag:
- tag, err := r.ExactTag(id)
- if err != nil {
- return objectid.ObjectID{}, err
- }
-
- id = tag.Object().Target
- case objecttype.TypeInvalid,
- objecttype.TypeTree,
- objecttype.TypeBlob,
- objecttype.TypeFuture,
- objecttype.TypeOfsDelta,
- objecttype.TypeRefDelta:
- return objectid.ObjectID{}, &giterrors.ObjectTypeError{OID: id, Got: ty, Want: objecttype.TypeCommit}
- default:
- return objectid.ObjectID{}, &giterrors.ObjectTypeError{OID: id, Got: ty, Want: objecttype.TypeCommit}
- }
- }
-}