bookmark create NAME CHANGE names only that change's closure, and switching to it rewrites the tree silently issue #37 closed: completed andymccall opened this · 0 comments
andymccall referenced by change b9c2d543933b on main ·
closed by change 4fe7d6045860 ·
andymccall referenced by change 4afab467e35f on main ·
Found on metalgear (feedback issue #26). On feature/25-logo-wait (heads 2d18698b, 745307b4, a09c7315),
oxy bookmark create logo-25 fbf43740made a state with the one head 745307b4. A change depends only on what it touched, so that state is the logo change plus its dependency closure: an early tree without .flow/, the HUD, radio and sound work.bookmark switch logo-25then correctly wrote that tree: 52 files written, 52 removed. The same happened with radio-19 an hour earlier (1 written, 7 removed).This is the model working as specified, but it is a trap. Anyone coming from Git reads 'a bookmark at this change' as 'everything up to this change', and nothing warned. What was wanted was a bookmark at the current state (
oxy bookmark create logo-25with no change does that).Proposal:
bookmark createrefuses. It explains that the new state would lack N changes, names the files that would differ, and suggests the form without CHANGE or --only to insist.bookmark switchprints a summary when the target state's tree differs widely from the current one: 'logo-25 lacks 2 of feature/25-logo-wait's heads (52 files differ)'.