#243: spec `loot adopt <version>` — settle a dock onto a landed change
The primitive the mirror re-baseline needs and could not do safely: take a
landed change wholesale, abandon the divergent forks, NO merge (merge
resurrects files deleted upstream). Decided: extend `loot adopt` with an
optional <version> (amends ADR 0034 — no-arg merges the harbor lineage,
<version> takes-wholesale a landed point); refuse a dirty dock by default,
`--discard-wip` to drop stale WIP. Reuses abandon_fork + checkout +
op-log; the only new code is the target-on-lineage guard. Includes the
end-to-end #243 reconcile script and test list. 77a2f928 · dbf3dbe6…
adopt resolves its target in the shared graph, so a lane-landed change is refused by name, not reported missing (#829) 52dd2c3d · dbf3dbe6…diff
Renames are not followed. loot's tree maps a path to an address, so a rename is a delete and an add. This list is the history of the name, not of the bytes.