Skip to content
zit Artifact [c56f411da7]
Login

Artifact [c56f411da7]

Artifact c56f411da7567d7b09395a92cf38db47718808ae0f43f041bda4365998a5d5e4:


zit 0.14.5

zit 0.14.5 confines where a sync connects and what it sends there: it no longer follows a redirect to another host, and a caller can pin the address it dials.

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

Redirects stay on the host

push, pull, sync and clone followed an HTTP redirect to any host. The request was sent again to the new host as it stood: the login card, which names the user and carries a signature made with the saved secret, and on a push the content itself. Upgrade if you sync with a server you do not fully trust, or through one that can be made to redirect.

This is stricter than Fossil, which follows a redirect to another host.

--resolve

--resolve HOST:PORT:ADDR on push, pull, sync and clone makes zit dial ADDR for HOST:PORT instead of resolving the name, as curl's option does. The TLS server name, the certificate check and the Host header stay HOST. ADDR is an IPv4 address, or an IPv6 address with or without square brackets. Up to 8 may be given.

When any is given, zit connects only to a host and port that has an entry, and refuses any other: "no --resolve entry for HOST:PORT; not connecting". A caller that must not reach certain addresses, such as a forge syncing with a URL a user supplied, resolves the name itself, checks the address and passes it. zit holds no address rules of its own.

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.