Skip to content
zit zit 0.3.9
Login

zit 0.3.9

zit 0.3.9 makes clone stream. A dense clone used to hold every received artifact in memory until the exchange converged and only then write the repository; its peak memory tracked the repository's size, and a repository larger than RAM could not be cloned at all. Each round's artifacts now land in the log as the exchange runs, and their bytes are released the moment the frame is durable (zit#172).

No artifact, tag namespace, or sync message changed.

Clone persists as it converges (zit#172)

The shape is git index-pack's, applied to fossil's reverse-delta wire: a delta whose basis has not arrived yet is deferred on the basis's hash and re-driven the instant that basis lands; a basis first seen as a phantom — fossil interns a delta's unseen DELTASRC before its content arrives — is revisited when the content lands at that same rid. What stays resident is the round's batch plus the waiting deltas, measured at zero against a zit peer (the log serves basis before delta by construction) and about 11 MB against fossil 2.28 on the sqlite corpus.

On the pkgsrc corpus (904,898 artifacts, a 1.73 GB store) the whole store is on disk with the process near 820 MB where it previously held the repository; the clone is also slightly faster. The peak for the whole verb now belongs to the post-transfer cache derive, tracked as zit#182.

A cone-scoped clone keeps the batched pass — its keep set is classified over the converged store, as the sparse-cone RFC requires. The streamed and batched passes write byte-identical repositories, pinned by test, and every qualification clone ends with a clean zit verify.

Compatibility

Qualification

zig build test, e2e, smoke (Fossil interop against a real fossil), muscle (41 differential steps), git-import-e2e, git-export-e2e, and dst, plus the three-runner CI battery (macOS ARM64, Linux x86-64, Linux ARM64). Streamed clones of the sqlite corpus from a zit peer and from fossil 2.28, and of the pkgsrc corpus from a zit peer, each finished with zit verify reporting zero faults.