Skip to content
zit zit 0.10.0
Login

zit 0.10.0

zit 0.10.0 is for applications that write to a store without a checkout. It adds a local daemon that keeps a store open and commits in milliseconds, builds every commit -R through a new direct-commit core, and lets that path rename and delete files. New names now follow Fossil's strict rule.

This release is from trunk. Stores, caches and the wire are unchanged from 0.9.1.

New

A commit is acknowledged only after it is on disk, and a resend with the same time, user and comment is answered with the stored check-in. The socket's directory and file are owner-only, and other users are refused. On a 10,000-file sub-manifest store, a one-file commit takes about 8 ms and a feed with nothing new about 0.01 ms. zit help daemon documents the protocol.

Faster

commit -R no longer builds a temporary checkout. It writes the check-in from the parent's manifest and the edits, byte-identical to a checkout commit of the same change. A one-file commit on a 42,000-file sub-manifest store took 0.37 s and now takes 0.16 s; held open by the daemon, it takes about 20 ms.

Names

New file names follow Fossil's strict rule, as fossil add does. commit, add, addremove and mv refuse:

zit also refuses control bytes in new file names and in user and branch names. Fossil already escapes some of them; zit refuses the rest. Spaces stay allowed. add of a directory warns about a bad name and skips it, as fossil add does.

Names read from existing check-ins are not checked, so a Fossil-made name still clones, updates and checks out, and a delete or rename can remove it.

Compatibility

Stores and the wire are unchanged from 0.9.1, and nothing is rebuilt on first open. Every check-in zit writes is still one stock Fossil reads.

A name that 0.9.x accepted and that the rules above now refuse, such as a file name with a control byte, can no longer be added or committed under that name. Existing check-ins that hold one are unaffected.

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.