zit 0.6.3 fixes incremental Git imports after a force-push or a deleted branch when the source is a fresh complete fetch, and makes a cone clone or pull say whether its peer applied the cone.
This release is from trunk. Horizon clones and their protocol extensions are not included.
Incremental imports from a fresh source
An import-git --into whose source no longer held a tip recorded by the
previous import (the old head of a force-pushed branch, or the tip of a
deleted branch) failed with ConflictingOid when that source was a fresh,
complete fetch, as a mirror that keeps no Git data between pulls builds
one. The export excluded only history beneath the recorded tips, so a
missing tip let already-imported ancestors back into the stream. The export
now excludes every commit the destination's map records, read by Git from
standard input, and adds only what is new. Shallow and persistent sources
behave as before.
Cone acknowledgement
A cone-aware server now says pragma cone-served in each reply that applied
the whole requested cone. The client counts acknowledged and
unacknowledged replies, and reports the outcome:
cloned 412 artifacts into work in 3 rounds (96 elided by the cone; applied by the peer)
A peer that ignores the cone is still served correctly; the client filters
locally, and clone and pull say so (filtered locally; the peer did not
acknowledge the cone). An empty cone, one with no inclusion member, is now
refused when the cone is built.
Sparse-cone draft
The sparse-cone draft gains the cone-served pragma and the empty-cone
refusal, states that compaction and local filtering drop only out-of-cone
blobs while every manifest and sub-manifest node is kept, and clarifies that
the per-round bound covers the tree walk rather than the pull inventory.
Each change is listed in the draft's Changes in This Revision appendix.
Compatibility
The artifact and repository store formats are unchanged. cone-served is a
new server-to-client pragma; peers that do not know it ignore it, as the
sync protocol requires of unknown pragmas. Import maps written by 0.6.2 are
read unchanged.
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.