Artifact dbc731b339f2a6b32af95ca0ee6b5a36629d8ef9944b3f7006f4c59d62bfdcfd:
- File
src/update.zig
-
2026-07-18 15:59:23
— part of check-in
[20bf0a31c6]
on branch cli
— Add merge --cherrypick / --backout as special merges (no new verbs)
Both are alternate-baseline choices inside the shipped merge machinery, per merge-flags contract B-merge-30..40 (which lifts merge.md's v1 non-goal); the flagless zit merge NAME surface is byte-identical (B-merge-31 re-asserts it).
- --cherrypick REV: three-way with base = REV's primary parent, other = REV, current = checkout (apply REV's own changes). --backout REV: base = REV, other = REV's primary parent (reverse REV). Same classifyFile/applyMerge engine; a root REV yields an empty side; zero entries refuse (B-merge-39). Flags are mutually exclusive and reject an extra positional / dirty tree. - A cherrypick/backout commit stays SINGLE-parent (REV is never a merge parent) and mints exactly one artifact 4.7.14 Q card (Q +rev / Q -rev), cleared one-shot; a plain merge keeps its two-token P card and empty Q. - The pending op is a new checkout special_op field (4th TLV, no default, threaded everywhere); undo serializes it (journal fmt v1->2) so undo unwinds a pending cherrypick/backout (B-merge-35).
B-merge-1..29 e2e all still pass. 1675 unit + 362 e2e green; fmt clean. Follow-up: B-merge-41 (zit info Q-card render line) deferred — its pinned text was absent from the plan; the Q card is already readable via zit artifact. (user: dmestas, size: 78831) [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: 78831) [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: 78831) [annotate] [blame] [check-ins using]
-
2026-07-18 15:59:23
— part of check-in
[20bf0a31c6]
on branch cli
— Add merge --cherrypick / --backout as special merges (no new verbs)