Skip to main content

Module git_ops

Module git_ops 

Source
Expand description

GitOps — the typed API gunnar calls, and the store that implements it. Base znippy never sees this trait. GitOps — ours, typed, and base znippy never sees it.

§13.2: ArchiveTypePlugin is base znippy’s contract and crate::NativeGitPlugin implements it — base stores, the plugin annotates, exactly as maven, python, rust-toolchain and media already work. GitOps is the other trait: the one gunnar calls, with git’s own vocabulary in it.

§13.3: ArchiveTypePlugin::run_command(cmd, args) is CLI-only string dispatch and delegates here. A server’s hot path does not go through stringly-typed dispatch, so nothing below takes a &str command or an args: &[String].

  gunnar ──typed──► GitOps  (this file, twelve methods)
                      │
     ┌────────────────┼──────────────────┬─────────────┐
     ▼                ▼                  ▼             ▼
  ArchiveWrite    ObjectIndex          RefLog         Gc
  SafeWriter      ObjectReadStack      push log       NewGeneration
  (blob fsync,    (stree → Arrow       (Arrow IPC     (link, compact,
   journal row)    → redb tail)         frame = tx)    verify, rename)

Every arm under that diagram already existed and was already measured. This file adds no storage, no index and no durability mechanism of its own — if a method here looks like it is inventing one, that is a bug.

§The one thing that is NOT here

run_command still lives on the plugin in [crate::lib], and it now delegates. Nothing git-shaped went into base znippy for any of this.

Structs§

GitStore
One repository’s git store.
RefRow
One row of the ref namespace: name, oid, peeled.
Stored
What get hands back: the stored bytes and enough type information that they cannot be mistaken for something else.
TxId
The receipt for one durable transaction.

Enums§

LookupPath
Which path a lookup of n oids takes.
SelectedStore
A GitStore whose index arm was chosen at run time.

Constants§

BATCH_SATURATES_AT
Oids at which the batch path stops getting faster. Reported, not enforced: splitting a bigger batch would cost a pass and buy nothing.

Traits§

GitOps
The eleven. Typed, backend-neutral, and the only entry point a git server needs into storage.

Functions§

lookup_path
The dispatch, in one place.
open_from_env
The env-driven front door: read the three variables once, here, and build the store they name.
open_selected
Open a store with all three arms chosen at run time.

Type Aliases§

Extent
A byte range inside the store: (offset, len).
Oid
An object id, borrowed.