diff options
| author | 2026-03-31 03:17:56 +0000 | |
|---|---|---|
| committer | 2026-03-31 03:17:56 +0000 | |
| commit | 3ce59c3248dec0eb0f918c42f37f53bc2ac20425 (patch) | |
| tree | 183eaec2d26b037324f41ff7f79dda67396b400e /commitquery/query_resolve_commitish.go | |
| parent | object/fetch: Wrap ReadSize errors (diff) | |
| signature | No signature | |
commitquery: Error handling cleanup after the fetcher port
Still a few weird parts, but I forgot what those helpers were for,
and the semantics were a bit awkward... will check laterâ„¢
Diffstat (limited to 'commitquery/query_resolve_commitish.go')
| -rw-r--r-- | commitquery/query_resolve_commitish.go | 38 |
1 files changed, 6 insertions, 32 deletions
diff --git a/commitquery/query_resolve_commitish.go b/commitquery/query_resolve_commitish.go index a9ad8bb5..1e14a1c0 100644 --- a/commitquery/query_resolve_commitish.go +++ b/commitquery/query_resolve_commitish.go @@ -1,39 +1,13 @@ package commitquery -import ( - stderrors "errors" - - giterrors "codeberg.org/lindenii/furgit/errors" - "codeberg.org/lindenii/furgit/object/commit" - objectid "codeberg.org/lindenii/furgit/object/id" - objectstore "codeberg.org/lindenii/furgit/object/store" - "codeberg.org/lindenii/furgit/object/tag" - objecttype "codeberg.org/lindenii/furgit/object/type" -) +import objectid "codeberg.org/lindenii/furgit/object/id" // resolveCommitish peels one commit-ish object ID and resolves the commit. func (query *query) resolveCommitish(id objectid.ObjectID) (nodeIndex, error) { - for { - obj, err := query.fetcher.ExactObject(id) - if err != nil { - if stderrors.Is(err, objectstore.ErrObjectNotFound) { - return 0, &giterrors.ObjectMissingError{OID: id} - } - - return 0, err - } - - switch parsed := obj.Object().(type) { - case *commit.Commit: - return query.resolveOID(id) - case *tag.Tag: - id = parsed.Target - default: - return 0, &giterrors.ObjectTypeError{ - OID: id, - Got: parsed.ObjectType(), - Want: objecttype.TypeCommit, - } - } + id, err := query.fetcher.PeelToCommitID(id) + if err != nil { + return 0, err } + + return query.resolveOID(id) } |
