Skip to content
zit zit 0.3.5
Login

zit 0.3.5

zit 0.3.5 makes a checkout mean the same thing to fossil and to zit. A repository carries its policy in .fossil-settings/ — what is ignored, what is binary, which line endings and encodings are tolerated, whether dotfiles show. Fossil honoured all of it; zit honoured part of it, with its own glob parser and its own idea of what a binary file is. A developer running stock fossil against a zit server could have a file accepted at commit and refused at push. That is closed.

No artifact, tag namespace, or sync message changed.

One checkout, two tools

Every versionable setting Fossil 2.28 recognizes is now read at every tier — versioned file, repository, global, and --flag — from either .fossil-settings/ or .zit-settings/:

Fossil's own checkout-state names — .fslckout, _FOSSIL_, .fos, their -journal/-wal/-shm sidecars, and the manifest stamps — are control names now: never listed as extras and never addable while stamps are on.

Content is classified the way Fossil's lookslike.c does it. A UTF-16 file is a Unicode file, not a binary one, and an invalid-UTF-8 file that encoding-glob permits is permitted — on the commit gate and on the push gate alike, from one shared classifier. A file zit committed is a file a zit server accepts.

The differential smoke now carries a checkout holding every .fossil-settings name and requires both tools to read it identically: the same extras with and without dotfiles, the same clean preview, the same tree after update.

Behaviour changes

Known gap

zit does not open a Fossil checkout in place: .fslckout is a SQLite database zit will not read. zit open the repository into a fresh directory instead. The remaining corners — glob class negation, a versioned-only manifest at open, root-name case on Linux — remain open.

Compatibility

Qualification

zig build test, e2e, smoke (Fossil interop against a real fossil, now with the settings-parity scenario), 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). The glob tokenizer and the content classifier were each verified by differential test against the fossil binary.