From 3ce59c3248dec0eb0f918c42f37f53bc2ac20425 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Tue, 31 Mar 2026 03:17:56 +0000 Subject: 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â„¢ --- commitquery/query_resolve_commitish.go | 38 ++++++---------------------------- 1 file changed, 6 insertions(+), 32 deletions(-) (limited to 'commitquery/query_resolve_commitish.go') 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) } -- cgit v1.3.1-10-gc9f91