Artifact 2b492a156e33f63e95568822788456ffdcb83d235f6f13fa6eec57f675c931b3:
- File
src/sync.zig
-
2026-07-19 19:14:47
— part of check-in
[5535de0f45]
on branch iss8
— sync: absorb cluster membership so pull converges past the unclustered window
A fossil server folds artifacts past its ~100-entry unclustered window into cluster artifacts and stops announcing them with igot: the M cards become the announcement. The client stored a received cluster as ordinary content and read nothing from it, so no phantom appeared, the 3.7(a) continuation saw an empty table, and the exchange terminated after one round having fetched only the cluster. Repository size, not delta size, was the trigger; clone converges on the 8.2 RID cursor, not on gimme, so it was unaffected.
Client.absorbCluster folds the members into the phantom set with the disposition an igot for each would produce, so the next round gimmes them. Membership is validated before any is applied; a clone skips it for the reason it announces no igot. On the cfile path the container inflates into a scratch buffer, not through store.content, which would memoise plaintext.
Client.unresolvedPhantoms counts announced-but-unobtained artifacts; pull exits nonzero when a run reaches a clean terminal with any outstanding, so a pull that stops short of what the peer holds is no longer reported as success. (user: dmestas, size: 311889) [annotate] [blame] [check-ins using]
-
2026-07-19 20:37:09
— part of check-in
[8d3ebc0c9d]
on branch trunk
— Merge iss8: pull converges past the server's unclustered window
A fossil server folds artifacts older than its ~100-entry unclustered window into clusters and stops announcing those members with igot -- the M cards are the announcement. The client stored a received cluster as ordinary content and read nothing from it, so a pull past that window fetched only the cluster and then terminated, silently, having gained nothing. Cluster membership now folds into the phantom set, so the next round gimmes the members. A pull that reaches a clean terminal still lacking artifacts the peer announced now exits nonzero, rather than reporting a success that leaves a repository quietly out of date. (user: dmestas, size: 311889) [annotate] [blame] [check-ins using]
-
2026-07-19 19:14:47
— part of check-in
[5535de0f45]
on branch iss8
— sync: absorb cluster membership so pull converges past the unclustered window