Skip to content
go-libfossil Check-in [35566881ec]
Login

Check-in [35566881ec]

Overview
Comment:fix(manifest): keep a pull's file waits; skip them only in a sparse clone

The previous change let a sparse store link a check-in before its files. A pull that deepens a structural horizon then linked the new base first and left its files unrequested phantoms, and the merge over it found no content (TestRepoMergeDeepensAcrossHorizon).

A pull waits on a check-in's files again, except those the store cone's path members exclude, which never arrive. Only a clone into a sparse store waits on none: the origin's walk sends every file the store keeps in the same session, and nothing reads the store before the clone ends.

Timelines: family | ancestors | descendants | both | trunk | feat/horizon-cones
Files: files | file ages | folders
SHA3-256: 35566881ec1b9214a9998b3affc7e534011c8bf454c789945af2b75e2a909bd5
User & Date: [email protected] on 2026-10-23 15:11:47.000
Other Links: branch diff | manifest | tags
Context
2026-10-23
15:19
Merge branch 'wip/clone-perf' into feat/horizon-cones check-in: ed53ee9c59 user: [email protected] tags: feat/horizon-cones, trunk
15:11
fix(manifest): keep a pull's file waits; skip them only in a sparse clone

The previous change let a sparse store link a check-in before its files. A pull that deepens a structural horizon then linked the new base first and left its files unrequested phantoms, and the merge over it found no content (TestRepoMergeDeepensAcrossHorizon).

A pull waits on a check-in's files again, except those the store cone's path members exclude, which never arrive. Only a clone into a sparse store waits on none: the origin's walk sends every file the store keeps in the same session, and nothing reads the store before the clone ends. check-in: 35566881ec user: [email protected] tags: feat/horizon-cones, trunk

15:11
fix(manifest): publish a sparse check-in's spine against an absent source

A sparse store published no event or plink rows for a check-in while a P or Q source of it was absent, unless a structural horizon held it below. A source can be absent for good: fossil-scm.org's repository lacks the parents of five check-ins, which a dense clone links against phantoms, so a cone or content clone of it failed repo verify on them.

SparseCheckinReady no longer requires an absent source's file set: the check-in's spine is published against the phantom, as a dense store publishes it, and its orphan row keeps mlink derivation waiting until the source arrives. check-in: 69f3048e67 user: [email protected] tags: feat/horizon-cones, trunk

Changes