Skip to content
go-libfossil Check-in [67bc700498]
Login

Check-in [67bc700498]

Overview
Comment:fix(sync): clone an origin that holds a dangling delta

An origin that held a delta whose source it never received could not be cloned at all. walkCloneChain found the source unforwardable (a phantom) and asked buildCloneArtifact to send the delta expanded; expanding it failed, the handler errored, and every client stopped at clone sequence 1.

The origin now withholds a chain that ends at a phantom, as it withholds a row outside the clone's cone. Sending the stored delta naming its phantom source, as fossil's send_compressed_file does, is not enough: a fossil client then rejects the whole clone for its unresolved deltas. A later pull fetches the chain once the source arrives.

Timelines: family | ancestors | descendants | both | main | trunk
Files: files | file ages | folders
SHA3-256: 67bc700498dbbf271b6998c62a11f3e665ed22b50db9ebc430b1a108727ef27f
User & Date: [email protected] on 2026-10-24 02:58:56.000
Other Links: branch diff | manifest | tags
Context
2026-10-24
03:06
Merge pull request #475 from danmestas/fix/clone-dangling-delta

fix(sync): clone an origin that holds a dangling delta check-in: 77c6eb043e user: [email protected] tags: main, trunk

02:58
fix(sync): clone an origin that holds a dangling delta

An origin that held a delta whose source it never received could not be cloned at all. walkCloneChain found the source unforwardable (a phantom) and asked buildCloneArtifact to send the delta expanded; expanding it failed, the handler errored, and every client stopped at clone sequence 1.

The origin now withholds a chain that ends at a phantom, as it withholds a row outside the clone's cone. Sending the stored delta naming its phantom source, as fossil's send_compressed_file does, is not enough: a fossil client then rejects the whole clone for its unresolved deltas. A later pull fetches the chain once the source arrives. check-in: 67bc700498 user: [email protected] tags: main, trunk

01:04
Merge pull request #474 from danmestas/fix/deterministic-gimme

fix(sync): ask for phantoms in hash order check-in: d40046f706 user: [email protected] tags: main, trunk

Changes