The merge-and-split exercise
The merge-and-split exercise
The evidence node-identity.md sections 7 and 8 were decided against. Those
sections rule on the two items that document’s closing section left open —
what a merge and a split do to the lineage of each side, and whether a
restructure may ever be atomic — and the todo that asked for them required the
ruling be made against what bin/canvas actually prints rather than against a
prediction of it. This directory is that “actually”.
It exists because the corpus could not answer the question. The 76 invocations
behind ../drive-by-hand/canvas-transcript.md contain no remove, no move,
and history was never run once in them, so nothing recorded anywhere in this
repository said what a stranded id answers after a merge retires it.
canvas-transcript.md— everybin/canvasinvocation of the exercise, verbatim, with its exit code and its complete output, in the order it was run. Twenty-five invocations: a canvas built from nothing, a real split, a real merge, amoveof a populated container, and eighthistoryruns. Both refusals are in it and neither was edited out. It follows the shape../drive-by-hand/canvas-transcript.mdset.FINDINGS.md— what that transcript shows, claim by claim, each one naming the invocation that supports it by the line its record starts at. It reports and does not rule; the ruling isnode-identity.md§7 and §8.
The four ids to read it by: e8ec kept its id through the split, dkjk
was born in it, oskz survived the merge, and dwqu is the id the merge
retired. bin/canvas history for the surviving id and for the stranded one —
the two outputs the todo named explicitly — are at canvas-transcript.md:266
and :286. The stranded one exits 0 and prints the node’s whole life.
Where it was run. Against a scratch store inside the run directory that
produced it, never a live workspace, with the clone left on main at
798ee8c2e3372099646dd2ff044f58b44649bf1d and its working tree clean: nothing
in this repository was edited to make the exercise. The two files were copied
here unchanged except for one filename each — they referred to each other by
the names they had in the run directory, and now refer to each other by the
names they have here.