GET-057: bare get CLOBBERS dirty staged files untouched by the incoming commit

Now
DONE

Incident 2026-07-29 21:31, gritzko in //PATCH-025 (the wt runs its OWN modified get.js PATCH-025 rewired the weave leaf, so trunk may be innocent): be get absorbed trunk's ULOG-004 commit (da3cf823 543269d6, touches only shared/wtlog.js + test/wtlog_con.js + CMakeLists) and OVERWROTE five dirty+staged test files with trunk bytes although theirs==base for every one of them keep-ours was the only legal outcome. Staged demotion ...V ...v also observed (put rows precede the new get tip row; rows NOT deleted). Regold content lost from the tree (put rows carry no blob sha; staging is row-only).

Input

Context

Goals

  1. Reproduce in a scratch clone: stage+edit files upstream-untouched by the incoming commit, bare get, diff. Run once with the wt's get.js and once with trunk's pin WHICH code clobbers, and what separates the clobbered five from the survivors.
  2. Fix so theirs==base keep ours, always staged or not; add the repro as a permanent get test.
  3. RULED (gritzko 2026-07-29): an FF get keeps the staged list recorded in GET-053 with the FF-only redesign; this ticket owns only the clobber.

Constraints

WIP

Design decisions

TODOs

Outcome