From 040b572d95e4ca27e1ada6113c405b8a1eb4a669 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Wed, 11 Mar 2026 20:41:32 +0800 Subject: commitquery: Merge from ancestor and mergebases --- commitquery/parent.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 commitquery/parent.go (limited to 'commitquery/parent.go') 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) +} -- cgit v1.3.1-10-gc9f91