Expand description
A narrowly isolated Git adapter (EXCHANGE.md §23, GIT_INTEROP.md).
Shells out to the installed git executable for index/tree reads. Every
invocation is argument-safe (argv, never a shell), bounded, failure-
checked, and isolated from canonical Gemel semantics. The boundary is
replaceable by a native adapter (e.g. gix) later.
Structs§
- GitCommit
- A parsed Git commit (GIT_INTEROP.md §4).
- GitTree
Entry - One recursive tree entry: (mode, object kind, oid, path).
Functions§
- cat_
blob git cat-file blob <oid>→ content bytes.- cat_
commit git cat-file commit <oid>→ parsed commit.- clone_
repo git clone <url> <dir>(argv-safe).- ls_
tree_ recursive git ls-tree -r -z <tree>→ recursive entries (deterministic order: git’s own tree order; the caller sorts by path where order matters).- parse_
commit - Parses a raw commit object.
- person_
email - The email from a
name <email> ts tzline. - person_
name - The name from a
name <email> ts tzline. - person_
timestamp - The author/committer timestamp from a
name <email> ts tzline. - rev_
list_ topo_ reverse git rev-list --topo-order --reverse <head>: commits oldest-first in topological order (parents before children), deterministic.- staged_
files - Reads the staged (index) tree:
git ls-files --stage+git cat-file. The Git index is an interchange surface, never part of Gemel’s ontology (EXCHANGE.md §23).
Type Aliases§
- Staged
Entry - One staged entry: (path, gemel mode, blob content).