checkpoint: migrate through the resolving ref spelling

Commit

Stefan Haubold3d ago

refBase now returns the tip of a ref stored under its case-folded shard spelling, but migrate built its ref name with raw RefName. On a ref that only resolves folded โ€” after git packed it โ€” the CAS took expected from the folded tip and applied it to the canonical name, which holds nothing, so git refused the update and the migration failed its retries. The already-imported branch had the matching defect: it enqueued a name that cannot push.

Routing migrate's ref name through writeRefName fixes all three sites at once, including the ErrObjectNotFound retry branch's Reference lookup.

Refs #2402

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com Entire-Checkpoint: 01M2JVRW9HR0VK1Y8R0JTMMZER