strategy: generalize push and fetch to any ref
main·
Commit

pushBranchIfNeeded becomes pushRefIfNeeded; doPushBranch becomes doPushRef; fetchAndRebaseSessionsCommon takes a ReferenceName. Branch refs keep the has-unpushed optimization and the standard remote-tracking destination; non-branch refs use a generic +<ref>:<ref> refspec and a temp fetch ref. PrePush iterates refs.Push instead of pushing the v1 branch literal. The post-sync helper folds into setLocalAfterSync, which calls AdvanceCommittedPrimary when ref is the configured Primary and a plain SetReference otherwise.
Entire-Checkpoint: 94411f5e2680
Checkpoints
Checkpoint 1