Declare all pushed checkpoints as haves to avoid re-fetching ancestry

main

Commit

Soph4mo ago

With topological ordering, individual first-parent steps can land on a merge whose other parent's ancestry was already pushed in earlier iterations as its own side-branch checkpoint. Previously each fetch only declared the most recent temp-ref position as a have, so the source had to re-send those side-branch objects with every merge.

Track every successfully-pushed checkpoint in a per-batch slice and thread the full set into the fetch's haves on subsequent iterations. On resume, seed the slice from the chain prefix at-or-before current: those commits must have been pushed in prior runs to advance the temp ref, but in topo order they aren't necessarily ancestors of current (they can sit on side branches yet to be merged), so declaring just current misses them.

Entire-Checkpoint: 46264228955f

Checkpoints

can you rebase soph/progress-indicators onto soph/smart-subdivision

Claude Code
View session
Checkpoint 1