Skip to content
zit Artifact [1233f8f004]
Login

Artifact [1233f8f004]

Artifact 1233f8f0040a462f752f4c793b390c45e65e48ea8b6cb7e0cb15e68642ca42fd:


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 (zit#174).

No artifact, tag namespace, or sync message changed.

One checkout, two tools (zit#174)

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 — are collected in zit#175.

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.