The artifact hash prefix 22c2 is ambiguous and might mean any of the following:
22c24bbea4b5fa79879c984b8208e6b0b17b4837977ac36b79821648a4f900bd -
- File
src/merge3.zig
— part of check-in
[f774a1a2a7]
at
2026-07-18 15:17:48
on branch cli
— Add the annotate command: per-line provenance over the version chain
zit annotate PATH — which check-in introduced each line of one tracked file at the current checkout, and when. One canonical spelling (no blame/praise). The engine walks the file's full-ancestry version chain (repostate.ancestorsOf, the same 3.3 walk merge-base/bisect use; per-version content via Repository.fileAt, the one 8 effective-set query), diffs adjacent versions with the one house line-diff core (merge3.matchLines), and pushes each line's origin back to the OLDEST version carrying it. Across a merge, a line in ANY parent side is charged to that parent (primary first, repo-state 3.2), never to the merge; the merge is charged only for lines in no parent version. Output: 10-char hash, ISO date from event mtime, the line verbatim; a binary file refuses exit 1. Reviewed adversarially (merge attribution hand-traced correct). 1673 unit + 352 e2e green. (user: dmestas, size: 28514) [annotate] [blame] [check-ins using] [more...]
- File
src/merge3.zig
— part of check-in
[f774a1a2a7]
at
2026-07-18 15:17:48
on branch cli
— Add the annotate command: per-line provenance over the version chain
22c296843fd0ad96746d257eb676e1f89b8d53a7bb04e6224a357971f2e677a5 -
- File
src/cmd/history.zig
— part of check-in
[09fa1a7fb3]
at
2026-09-01 23:10:42
on branch trunk
— timeline reads no manifest for what the state answers; count the reads that remain
The default-format timeline inflated a manifest per row — the fetch condition still said 'a.format != .oneline' from when oneline was the default, so zit#170's medium default made every row read one for two strings the image now carries. 66.5s to 0.37s for the full SQLite timeline, output identical.
Repository.manifest counts its reads (ZIT_MANIFEST_READS=1 reports on exit), and an e2e runs ten listings over two history sizes and requires identical counts — a per-row reader fails by construction, no timing, no constants.
zit#172 (user: dmestas, size: 163518) [annotate] [blame] [check-ins using]
- File
src/cmd/history.zig
— part of check-in
[09fa1a7fb3]
at
2026-09-01 23:10:42
on branch trunk
— timeline reads no manifest for what the state answers; count the reads that remain