Artifact 39f5274ae2b1d8623f7e7a2c2b61d90d536185dffcde75def7f27641d58b1b8e:
- File
internal/sync/sparse_clone_walk.go
-
2026-10-28 11:59:23
— part of check-in
[9d266a0f51]
on branch perf/cone-clone-resend
— perf: carry a cone clone's forwarded delta chains across rounds
The server's cone walk sends an in-cone file version as a delta with the chain of newer versions ahead of it as its bases. Each round restarts the walk from the clone's cursor, so every later round that reached one of those versions at its own check-in sent it again.
The walk's cookie now names each chain a send forwarded: its head, length and an FNV-64 checksum of its rids. The next round rebuilds the chain from the store's delta table, counts its rids as sent, and drops it when the checksum no longer matches, so a store re-deltified mid-clone can never pass off a base the client was not sent. A run loses the leading rids the walk reaches, and the cookie carries at most 1,024 runs; one dropped is only sent again.
On a copy of fossil-scm.org's repository a cone clone of src now receives 72,835 blobs to hold 56,262 (main: 100,212); the clones verify identically. (user: [email protected], size: 4600) [annotate] [blame] [check-ins using]
-
2026-10-28 14:48:48
— part of check-in
[b85673a6cb]
on branch main
— Merge pull request #516 from danmestas/perf/cone-clone-resend
perf: carry a cone clone's forwarded delta chains across rounds (user: [email protected], size: 4600) [annotate] [blame] [check-ins using]
-
2026-10-28 11:59:23
— part of check-in
[9d266a0f51]
on branch perf/cone-clone-resend
— perf: carry a cone clone's forwarded delta chains across rounds