aboutsummaryrefslogtreecommitdiff
path: root/internal/commitquery/graph_pos.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/commitquery/graph_pos.go')
-rw-r--r--internal/commitquery/graph_pos.go107
1 files changed, 0 insertions, 107 deletions
diff --git a/internal/commitquery/graph_pos.go b/internal/commitquery/graph_pos.go
deleted file mode 100644
index 437f86e6..00000000
--- a/internal/commitquery/graph_pos.go
+++ /dev/null
@@ -1,107 +0,0 @@
-package commitquery
-
-import commitgraphread "codeberg.org/lindenii/furgit/commitgraph/read"
-
-// ResolveGraphPos resolves one commit-graph position to one internal query node.
-func (ctx *Context) ResolveGraphPos(pos commitgraphread.Position) (NodeIndex, error) {
- idx, ok := ctx.byGraphPos[pos]
- if ok {
- err := ctx.ensureLoaded(idx)
- if err != nil {
- return 0, err
- }
-
- return idx, nil
- }
-
- commit, err := ctx.graph.CommitAt(pos)
- if err != nil {
- return 0, err
- }
-
- idx, ok = ctx.byOID[commit.OID]
- if !ok {
- idx = ctx.newNode(commit.OID)
- ctx.byOID[commit.OID] = idx
- }
-
- ctx.byGraphPos[pos] = idx
- ctx.nodes[idx].graphPos = pos
- ctx.nodes[idx].hasGraphPos = true
-
- err = ctx.loadCommitAtGraphPos(idx, pos)
- if err != nil {
- delete(ctx.byGraphPos, pos)
-
- return 0, err
- }
-
- return idx, nil
-}
-
-// loadByGraphPos populates one node from a commit-graph position.
-func (ctx *Context) loadByGraphPos(idx NodeIndex) error {
- pos := ctx.nodes[idx].graphPos
-
- return ctx.loadCommitAtGraphPos(idx, pos)
-}
-
-func (ctx *Context) loadCommitAtGraphPos(idx NodeIndex, pos commitgraphread.Position) error {
- commit, err := ctx.graph.CommitAt(pos)
- if err != nil {
- return err
- }
-
- parents := make([]Parent, 0, 2+len(commit.ExtraParents))
-
- if commit.Parent1.Valid {
- parentOID, err := ctx.graph.OIDAt(commit.Parent1.Pos)
- if err != nil {
- return err
- }
-
- parents = append(parents, Parent{
- ID: parentOID,
- GraphPos: commit.Parent1.Pos,
- HasGraphPos: true,
- })
- }
-
- if commit.Parent2.Valid {
- parentOID, err := ctx.graph.OIDAt(commit.Parent2.Pos)
- if err != nil {
- return err
- }
-
- parents = append(parents, Parent{
- ID: parentOID,
- GraphPos: commit.Parent2.Pos,
- HasGraphPos: true,
- })
- }
-
- for _, parentPos := range commit.ExtraParents {
- parentOID, err := ctx.graph.OIDAt(parentPos)
- if err != nil {
- return err
- }
-
- parents = append(parents, Parent{
- ID: parentOID,
- GraphPos: parentPos,
- HasGraphPos: true,
- })
- }
-
- data := Commit{
- ID: commit.OID,
- Parents: parents,
- CommitTime: commit.CommitTimeUnix,
- Generation: commit.GenerationV2,
- HasGeneration: commit.GenerationV2 != 0,
- GraphPos: pos,
- HasGraphPos: true,
- }
-
- return ctx.populateNode(idx, data)
-}