aboutsummaryrefslogtreecommitdiff
path: root/internal/commitquery/oid.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/commitquery/oid.go')
-rw-r--r--internal/commitquery/oid.go94
1 files changed, 0 insertions, 94 deletions
diff --git a/internal/commitquery/oid.go b/internal/commitquery/oid.go
deleted file mode 100644
index 927c0220..00000000
--- a/internal/commitquery/oid.go
+++ /dev/null
@@ -1,94 +0,0 @@
-package commitquery
-
-import (
- stderrors "errors"
-
- commitgraphread "codeberg.org/lindenii/furgit/commitgraph/read"
- giterrors "codeberg.org/lindenii/furgit/errors"
- "codeberg.org/lindenii/furgit/object"
- "codeberg.org/lindenii/furgit/objectid"
- "codeberg.org/lindenii/furgit/objectstore"
- "codeberg.org/lindenii/furgit/objecttype"
-)
-
-// ID returns the canonical object ID of one internal node.
-func (ctx *Context) ID(idx NodeIndex) objectid.ObjectID {
- return ctx.nodes[idx].id
-}
-
-// CommitTime returns the committer timestamp used for one internal node.
-func (ctx *Context) CommitTime(idx NodeIndex) int64 {
- return ctx.nodes[idx].commitTime
-}
-
-// ResolveOID resolves one commit object ID to one internal query node.
-func (ctx *Context) ResolveOID(id objectid.ObjectID) (NodeIndex, error) {
- idx, ok := ctx.byOID[id]
- if ok {
- err := ctx.ensureLoaded(idx)
- if err != nil {
- return 0, err
- }
-
- return idx, nil
- }
-
- idx = ctx.newNode(id)
- ctx.byOID[id] = idx
-
- err := ctx.loadByOID(idx)
- if err != nil {
- delete(ctx.byOID, id)
-
- return 0, err
- }
-
- return idx, nil
-}
-
-// loadByOID populates one node from an object ID.
-func (ctx *Context) loadByOID(idx NodeIndex) error {
- id := ctx.nodes[idx].id
-
- if ctx.graph != nil {
- pos, err := ctx.graph.Lookup(id)
- if err != nil {
- if _, ok := stderrors.AsType[*commitgraphread.NotFoundError](err); !ok {
- return err
- }
- } else {
- return ctx.loadCommitAtGraphPos(idx, pos)
- }
- }
-
- ty, content, err := ctx.store.ReadBytesContent(id)
- if err != nil {
- if stderrors.Is(err, objectstore.ErrObjectNotFound) {
- return &giterrors.ObjectMissingError{OID: id}
- }
-
- return err
- }
-
- if ty != objecttype.TypeCommit {
- return &giterrors.ObjectTypeError{OID: id, Got: ty, Want: objecttype.TypeCommit}
- }
-
- commitObj, err := object.ParseCommit(content, id.Algorithm())
- if err != nil {
- return err
- }
-
- parents := make([]Parent, 0, len(commitObj.Parents))
- for _, parentID := range commitObj.Parents {
- parents = append(parents, Parent{ID: parentID})
- }
-
- commit := Commit{
- ID: id,
- Parents: parents,
- CommitTime: commitObj.Committer.WhenUnix,
- }
-
- return ctx.populateNode(idx, commit)
-}