One git cat-file --batch port per run.
The port is owned by Ancora.Derive.RunContext, never registered, and is
spawned without :stderr_to_stdout so git stderr cannot interleave with
blob payloads. Framing is <oid> <type> <size>\n<payload>\n.
Summary
Functions
Closes the port and drains leftover messages.
Requests one object (<oid> or <rev>:<path>) and waits for its frame.
Opens an unregistered git cat-file --batch port against root.
Parses a captured git cat-file --batch byte stream into complete records.
Fetches each spec serially through the port, in request order.
Types
Functions
Closes the port and drains leftover messages.
Requests one object (<oid> or <rev>:<path>) and waits for its frame.
Opens an unregistered git cat-file --batch port against root.
@spec parse_stream(binary()) :: {:ok, [record() | {:missing, String.t()}], binary()} | {:error, term()}
Parses a captured git cat-file --batch byte stream into complete records.
Returns {:ok, records, rest} where rest is any trailing incomplete bytes.
@spec prefetch(t(), [String.t()], keyword()) :: [ {String.t(), {:ok, record()} | {:error, term()}} ]
Fetches each spec serially through the port, in request order.