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/context.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 commitquery/context.go (limited to 'commitquery/context.go') diff --git a/commitquery/context.go b/commitquery/context.go new file mode 100644 index 00000000..8e19138e --- /dev/null +++ b/commitquery/context.go @@ -0,0 +1,34 @@ +// Package commitquery answers commit ancestry and merge-base queries. +package commitquery + +import ( + commitgraphread "codeberg.org/lindenii/furgit/commitgraph/read" + "codeberg.org/lindenii/furgit/objectid" + "codeberg.org/lindenii/furgit/objectstore" +) + +// Query owns the mutable node arena for commit-domain queries over one object +// store. +type Query struct { + store objectstore.Store + graph *commitgraphread.Reader + + nodes []node + + byOID map[objectid.ObjectID]nodeIndex + byGraphPos map[commitgraphread.Position]nodeIndex + + markPhase uint32 + touched []nodeIndex +} + +// New builds one reusable commit query arena over one object store and optional +// commit-graph reader. +func New(store objectstore.Store, graph *commitgraphread.Reader) *Query { + return &Query{ + store: store, + graph: graph, + byOID: make(map[objectid.ObjectID]nodeIndex), + byGraphPos: make(map[commitgraphread.Position]nodeIndex), + } +} -- cgit v1.3.1-10-gc9f91