aboutsummaryrefslogtreecommitdiff
path: root/commitquery/parent.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-11 20:41:32 +0800
committerGravatar Runxi Yu2026-03-11 20:41:32 +0800
commit040b572d95e4ca27e1ada6113c405b8a1eb4a669 (patch)
tree68d826f4d91144105802c9d1c67175ba9b314e29 /commitquery/parent.go
parentresearch: Maybe drop mmap in packfile_bloom (diff)
signatureNo signature
commitquery: Merge from ancestor and mergebases
Diffstat (limited to 'commitquery/parent.go')
-rw-r--r--commitquery/parent.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/commitquery/parent.go b/commitquery/parent.go
new file mode 100644
index 00000000..1c59e102
--- /dev/null
+++ b/commitquery/parent.go
@@ -0,0 +1,27 @@
+package commitquery
+
+import (
+ commitgraphread "codeberg.org/lindenii/furgit/commitgraph/read"
+ "codeberg.org/lindenii/furgit/objectid"
+)
+
+// parentRef references one commit parent.
+type parentRef struct {
+ ID objectid.ObjectID
+ GraphPos commitgraphread.Position
+ HasGraphPos bool
+}
+
+// Parents returns resolved parent node indices for one internal node.
+func (query *Query) parents(idx nodeIndex) []nodeIndex {
+ return query.nodes[idx].parents
+}
+
+// resolveParent resolves one parent descriptor to one internal node.
+func (query *Query) resolveParent(parent parentRef) (nodeIndex, error) {
+ if parent.HasGraphPos {
+ return query.resolveGraphPos(parent.GraphPos)
+ }
+
+ return query.resolveOID(parent.ID)
+}