Artifact 22c24bbea4b5fa79879c984b8208e6b0b17b4837977ac36b79821648a4f900bd:
- File
src/merge3.zig
-
2026-07-18 15:17:48
— part of check-in
[f774a1a2a7]
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]
-
2026-07-18 17:08:10
— part of check-in
[e5fffafdb8]
on branch trunk
— Merge cli: the cli-verbs-2 survey slice — seven new verbs
Lands amend, artifact, bisect, log PATH, annotate, merge --cherrypick/--backout, and addremove — the VCS-verb-survey recommendations — onto trunk, already integrated with the storage branch's pack re-deltification.
- amend: mint display-metadata T cards, never rewrite history (also corrects the git-reflex table's wrong immutability lesson). - artifact: the plumbing window (whatis + raw dump) over the one parser. - bisect: DAG binary search (bad/good/next/status/reset), state in .zit-bisect. - log PATH: per-file history folded into log (fossil finfo). - annotate: per-line provenance; the version chain is ordered by TOPOLOGY (matching fossil's generation walk), not mtime, so a parent is never misattributed to its child on a timestamp collision. - merge --cherrypick/--backout: alternate-baseline special merges recording a 4.7.14 Q card, rendered by info; the plain merge surface is byte-identical. - addremove: one sweep, add every extra and drop every missing.
Built decomposed (focused implementers + adversarial review) after the monolithic workflow thrashed on API instability. 1678 unit + 376 e2e + dst 6x1000 green. (user: dmestas, size: 28514) [annotate] [blame] [check-ins using]
- 2026-07-18 17:12:54 — part of check-in [09748596dc] on branch storage — Merge trunk into storage: bring in the converged trunk (storage pack work + the cli verb slice — annotate, bisect, extras, merge3, undo, cherrypick/backout) so the dict lever (§2.2 preset-dictionary compression) builds on current state. (user: dmestas, size: 28514) [annotate] [blame] [check-ins using]
-
2026-07-18 15:17:48
— part of check-in
[f774a1a2a7]
on branch cli
— Add the annotate command: per-line provenance over the version chain