Expand description
Git memory (M3, 0001 pillar 3.2/3.3): log graph, blame, changed-file
stats. Reads run through GitExec — local git or bounded remote
git over the shared execution boundary (0036 RW8) — with one argv
builder and one structured parser per query, so both backends admit
exactly the same machine formats. Permalinks and remote
normalization live in permalink/ssh (0033 finding 1).
Structs§
- Blame
Card - A blame card for one line (0001 pillar 3.3).
- Blame
Line - One line of a whole-file blame (0001 pillar 3.3, the toggleable
column).
ageis rendered at parse time;tskeeps “recent” honest for the caller’s coloring. - Changed
File - Files changed by a commit:
path | +N -Mrows for the dive view. - LogRow
- One log line from
git log --graph, with the commit hash extracted.
Functions§
- blame_
file - Blame every line of a file (
--line-porcelain; the gutter’s data, 0011 §3). One bounded run on a job thread — never the input path. - blame_
line - Blame one line of a file (1-based). Porcelain format.
- log_
graph git log --graphfor the browser. One bounded run — the log is not a per-keystroke path (0001 §3). Caller decides threading.- log_
graph_ range git log -L start,end:path— the history of a line range (0014 wave 4: selection archaeology). The graph flag is meaningless with -L; rows come straight from the patch headers.- show_
stat - Files changed by a commit:
path | +N -Mrows for the dive view. Paths come from numstat’s NUL-delimited machine form, so native — never C-quoted, possibly non-UTF8 — names arrive as the worktree identitiescommit_file_diffexpects.