Artifact 44c2ffe0ad7bc9b628c1603619fa9e046f0b297be2db04f00d27e11d96574db1:
- File
internal/content/content.go
-
2026-10-19 01:50:41
— part of check-in
[9a9bc65f92]
on branch feat/submanifest-reader
— perf(verify): check blob integrity by walking delta trees once
Verify and Rebuild expanded every blob one at a time through a 256 MiB LRU cache. A real repository's delta chains run hundreds of revisions deep, so evicted chains were walked again from their roots: the blob check on the Fossil SCM repository ran for over 45 minutes.
content.ExpandAll walks each delta tree from its root, as fossil's rebuild_step does, expanding every blob once from its parent's content and binding it to its name. It reports for each blob what a caching Expand of that blob alone reports, and expands blobs no sound root reaches (cycles, phantom-grounded or too-deep chains) on their own for that error. checkBlobs and Verify's checkCheckins both use it and sort their issues by rid, so reports are unchanged. (user: [email protected], size: 12353) [annotate] [blame] [check-ins using]
-
2026-10-19 12:47:07
— part of check-in
[e3c81fb936]
on branch feat/submanifest-reader
— Merge branch 'perf/rebuild-blob-check' into feat/submanifest-reader
# Conflicts: # CHANGELOG.md (user: [email protected], size: 12353) [annotate] [blame] [check-ins using]
-
2026-10-19 14:41:42
— part of check-in
[47f89f0798]
on branch feat/submanifest-reader
— Merge branch 'feat/submanifest-reader' into feat/cones
Update's rewrite meets the sparse worktree: a file outside the cone is a record-only step, counted in OutOfCone, and never planned, scanned, checked, written, backed up as NAME-original or chmodded; reloading vfile moves its record to the target. SetCone records the mtime of each file it materializes, as Extract now does. (user: [email protected], size: 12353) [annotate] [blame] [check-ins using]
-
2026-10-19 01:50:41
— part of check-in
[9a9bc65f92]
on branch feat/submanifest-reader
— perf(verify): check blob integrity by walking delta trees once