BEE-016: bee mint <file>... — the verb that reaches refs no hook can see

Now
OPEN
Sev
MED
Ask
gritzko
Rep
///bee
On1
BEE-015
See
BEE-014

A pre-commit hook only ever sees a commit IN FLIGHT, so a ref that landed transient — committed before BEE-014, with --no-verify, or on a commit the hook could not resolve at the time — is unreachable by any hook whatever, and BEE-015 proved --amend cannot rescue it either: it mints against the amended commit as baseline and there is no amend signal in pre-commit to fix that. This is route (3) of BEE-015's Blockers, taken. bee mint <file>... upgrades EVERY transient file:line(:col) ref in the files it is given, in the WORKING copy alone, and the author then commits the result as an ordinary commit — after which the hook finds nothing fresh and does nothing. About 60 such refs sit in ///bee, 15 in ///bee-journal.

Input

Context

The backlog is history the hook can never revisit, and the one move a reader reaches for does not work.

Goals

Transient refs in the named files become permalinks, and nothing else moves.

Constraints

WIP

Design decisions

The verb is the hook's pass with two ends changed: what it scans and where it writes.

TODOs

Blockers and bummers

Outcome

BUILT AND GREEN, uncommitted: ///bee carries the change in its working tree, no VC op run. ninja && ctest -j20 in quickjab/build is 147/147 — 146 before, plus the new JSRCmint, and JSRChook/JSRCperma unmoved.