Artifact 7553bc40be6d20a31c45f0fdb3a541285cf766c69ae0a1e984b22696ba7f1515:
- File
src/update.zig
-
2026-07-23 16:06:31
— part of check-in
[f4736670a8]
on branch fix10-tolerance
— Tolerate a stored artifact state assembly cannot classify
A conforming repository contains artifacts a conforming parser declines. The artifact grammar requires the U card on a wiki artifact; fossil elides it when the submitter is "nobody", stores the result and syncs it. A clone of the canonical fossil repository therefore carries such artifacts, and assembly rejected the whole repository over one of them while timeline, ls, info and branch read the same store correctly.
The two conditions are separated by the name. Bytes that hash to the name they are stored under arrived and were stored correctly, so the only event is that this reader's grammar does not admit them; the artifact is opaque to state and is skipped, exactly as a non-participating type already is. Bytes that do not hash to their name are an integrity failure and stay fatal. Verification runs before the skip, which is what keeps the second from being swallowed by the first.
On a clone of the fossil repository, 67499 artifacts: update went from exit 1 having materialised nothing, to materialising all 983 files byte-identical to fossil's own checkout of the same check-in. (user: dmestas, size: 100751) [annotate] [blame] [check-ins using]
-
2026-07-23 16:08:22
— part of check-in
[6a0f1f3f66]
on branch trunk
— Merge fix10-tolerance: state assembly tolerates what it cannot classify
A conforming repository contains artifacts a conforming parser declines, and assembly rejected the whole repository over one of them while every read verb skipped it. Bytes that hash to the name they are stored under are stored correctly and merely unclassifiable, so they are opaque to state and skipped; bytes that do not are an integrity failure and stay fatal.
This closes the tolerance half of the update-diagnostics work. On a clone of the canonical fossil repository, update now materialises all 983 files byte-identical to fossil's own checkout. (user: dmestas, size: 100751) [annotate] [blame] [check-ins using]
-
2026-07-23 16:06:31
— part of check-in
[f4736670a8]
on branch fix10-tolerance
— Tolerate a stored artifact state assembly cannot classify