Expand description
Git-backed storage substrate. Each record is a JSON file in a git
worktree; every write is committed, giving an auditable history. Remote
replication via fast-forward pull/push.
GitStore implements Store but not
BlobStore: git is not a natural content-addressed
blob store. Blob-backed records (e.g. checkpoint pre-images, code-graph
slices) therefore require the fs, s3, or remote (daemon) substrates, not
git (gonzalo#184).
Structs§
- Changed
Paths - Source paths that changed between a git base commit and the current working
tree, classified uniformly as added / modified / deleted. Paths are
repo-relative with
/separators and each vector is sorted. - GitStore
- Pull
Conflict - A record that diverged on both sides of a pull and could not be auto-merged; the local version is kept and both sides are surfaced for resolution.
- Pull
Report - What a
GitStore::pulldid.
Functions§
- changed_
paths - Compute the changed path set between the tree of commit
baseand the current working tree of the repo atroot. Untracked files count as additions; renames are surfaced as a delete of the old path plus an add of the new one (uniform A/M/D — no rename tracking). Paths are repo-relative,/-separated, and sorted. - head_
commit - Resolve the
HEADof the repo atrootto its commit SHA (hex). This is the value to record as the base after a successful index, so the next run can diff against it incrementally. - is_
git_ repo - True if
pathis inside a git working tree (has a discoverable repository).