Skip to content
zit Artifact [208576dbd4]
Login

Artifact [208576dbd4]

Artifact 208576dbd49008c1c63e2d084e3ba2b804d2062a98a07278484292a2c1484932:


zit 0.13.0

zit 0.13.0 aligns its line diff and three-way merge with Fossil's, and makes the reads a forge pages through cheap on large stores: annotate, the history of one file, and the daemon's start and feed.

This release is from trunk. Stores and the wire are unchanged from 0.12.1. Two caches beside each store are rebuilt once; see Compatibility.

Diff and merge follow Fossil

annotate

log for a path

Daemon

Compatibility

Stores, check-ins, the sync protocol and the daemon protocol version are unchanged.

Two caches in .zit-cache are rebuilt from the store, because the line diff behind them changed: the blame cache, by the first annotate of each file, and the line counts, by the first crosslink. Measured on a forge's stores, first command after upgrading from 0.12.1:

store command first call later calls peak memory
pkgsrc (644 MB, 68,000 files) crosslink --lines 207 s 0.3 s 732 MB
pkgsrc ls --long tip 5.2 s 0.7 s 211 MB
pkgsrc annotate -n 50, most-edited file 0.3 s 146 MB
pkgsrc info, ls, log, one-file diff under 1.2 s under 200 MB
a 119 MB forge store each of the above but crosslink under 0.8 s under 30 MB

The line counts dominate: a consumer of crosslink --lines pays for them once per store. A server can build the new caches ahead of time on a copy of each store (crosslink --lines and ls --long tip), then move the copy's .zit-cache into place at the switch, as for 0.12.0. Do not let an older zit open a store whose caches are in the new format: it rebuilds its own over them.

Merges that both add lines at the same point now conflict where 0.12.1 took both sides; see above.

Qualification

The release manifest records native qualification against the exact tagged source archive on macOS ARM64, Linux x86-64 and Linux ARM64, using the pinned Zig 0.17.0 toolchain. Publication is gated on unit and end-to-end tests, Git differentials, deterministic simulation, seeded fuzzing, and Fossil interoperability checks on every distributed target.

For the basis of the conformance claim, see the 0.1.0 release notes.