Skip to content
zit zit 0.14.6
Login

zit 0.14.6

zit 0.14.6 makes zit serve refuse a push or pull from a different project, as Fossil does, and lets a new empty repository take the project of the first push it receives.

This release is from trunk. Stores, caches and the wire are unchanged from 0.14.5; nothing is rebuilt on upgrade.

zit serve refuses another project

zit serve accepted a push, and answered a pull, from a repository with a different project code, so two unrelated histories could be mixed in one store. It now refuses as Fossil does, with error wrong project, before it looks at anything else in the request, and stores and sends nothing. A clone is unaffected: it takes the server's code.

A repository made by zit init can therefore no longer push into, or pull from, another made by zit init. Clone one from the other, or see --adopt-project below.

The client names the way out. A refused push says "the peer refused: wrong project (this repository and the peer's are different projects; clone the peer to work on it)". A refused pull or sync says to run zit push first if the peer is a new empty repository, and otherwise to clone it.

serve --adopt-project

zit serve --adopt-project lets an existing project be pushed into a store just made with zit init. While the store is empty, the first push that lands content makes the pusher's project code the store's own, in the same commit as that content. From then on the store is strict, and a later clone carries the adopted code.

A stock Fossil client can make the first push too, and a Fossil clone of the store afterwards carries the pusher's code.

Tests

Not user-facing, but they change what a contributor sees.

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.