Artifact d4adbb0432130b694994e6bfde17a32ef6bd3c374082912fdde37225543b7d3b:
- File
src/repository.zig
-
2026-07-19 22:30:22
— part of check-in
[7bb5af134e]
on branch iss7b
— Read fossil's legacy delta baselines instead of dropping their files
The files/ls path eagerly reads a delta check-in's B-card baseline and parsed it through the strict reference parser. fossil's own 2008 cvs2fossil-era manifests carry F cards with a dangling trailing separator after the hash -- a space where a perm token would go -- which the section 4.2 grammar has no production for, so the strict parser rejects them as corrupt. When such a manifest is a delta's baseline, the rejection surfaced as BaselineUnresolvable and the check-in's whole file set vanished.
The target-manifest read path already tolerates this shape through parseForImport; the baseline path now does too. The strict parser still runs first and stays the sole grammar oracle; tolerance engages only when a well-framed, Z-valid artifact is rejected, strips exactly one trailing separator per F card, re-seals the checksum, and re-runs the strict parser -- any other malformation is still refused. The tolerated normalized copy is owned by the parsed baseline and freed with it. (user: dmestas, size: 34543) [annotate] [blame] [check-ins using]
-
2026-07-19 22:35:50
— part of check-in
[cd63fa1766]
on branch trunk
— Merge iss7b: read a fossil-legacy baseline instead of refusing files/merge
The #7 fix taught the timeline read path to tolerate fossil's 2008 cvs2fossil-era check-ins, whose F cards carry a dangling trailing separator the strict grammar has no production for. The baseline read path had the same defect: parseBaseline used the strict parser, so files and merge on a delta whose baseline is one of those legacy manifests failed as an unresolvable baseline. It now reads through parseForImport, the same tolerance, and threads the normalized copy the manifest borrows into the owned baseline so it is freed exactly once. The strict parser still runs first and remains the sole grammar oracle; any other malformation is still refused. (user: dmestas, size: 34543) [annotate] [blame] [check-ins using]
-
2026-07-19 22:30:22
— part of check-in
[7bb5af134e]
on branch iss7b
— Read fossil's legacy delta baselines instead of dropping their files