Skip to content
zit Changes To Home
Login

Changes To Home

Changes to "Home" between 2026-10-14 03:11:35 and 2026-10-20 15:20:31

︙
11
12
13
14
15
16
17
18

19
20
21
22
23
24
25
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25







-
+








The `zit` binary is a thin command over a library — a Zig counterpart to
libfossil — whose modules take no ambient time, randomness, filesystem, or
network, so the whole stack runs under seeded deterministic simulation.

## Download

[Download Zit 0.5.0 for macOS ARM64 or Linux x86-64/ARM64, or get the source archive](uv/download.html?v=0.5.0), or read the [release notes](doc/version-0.5.0/docs/RELEASE-NOTES-0.5.0.md).
[Download Zit 0.6.0 for macOS ARM64 or Linux x86-64/ARM64, or get the source archive](uv/download.html?v=0.6.0), or read the [release notes](doc/version-0.6.0/docs/RELEASE-NOTES-0.6.0.md).

Releases are also mirrored to [GitHub](https://github.com/danmestas/zit/releases).

## What it does

The everyday verbs — `init`, `add`, `commit`, `update`, `merge`, `diff`,
`status`, `timeline`, `branch`, `tag`, `annotate`, `grep`, `bisect`,
︙
63
64
65
66
67
68
69
70
71


72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

87
88
89
90
91
92
93
63
64
65
66
67
68
69


70
71

72
73
74
75
76
77
78
79
80
81
82
83
84

85
86
87
88
89
90
91
92







-
-
+
+
-













-
+







unversioned-file store; a peer's unversioned files are declined visibly.
zit never creates a SHA-1 repository, though it reads one.

## The specifications

The drafts under [docs/rfcs](dir?ci=trunk&name=docs/rfcs) are the sole
authority. Expected values in tests come from the spec text and its worked
examples, never from observing another implementation; where the code
follows Fossil's implemented behaviour against the published text, the
examples. Corrections are folded into the draft texts and listed in their
Changes appendices; the retired erratum files remain in repository history.
divergence is recorded in [docs/rfcs/erratum](dir?ci=trunk&name=docs/rfcs/erratum).

| Layer | Draft | Specifies |
|-------|-------|-----------|
| `delta` | [draft-fossil-delta-format-00](doc/trunk/docs/rfcs/draft-fossil-delta-format-00.txt) | byte-level delta encoding: copy/literal segments, base-64 integers, mod-2³² checksum |
| `artifact` | [draft-fossil-artifact-format-00](doc/trunk/docs/rfcs/draft-fossil-artifact-format-00.txt) | card-structured manifests and control artifacts, content addressing (SHA-1 / SHA3-256), checksums |
| `repostate` | [draft-fossil-repo-state-00](doc/trunk/docs/rfcs/draft-fossil-repo-state-00.txt) | branch, tag, and leaf state derived from the append-only artifact set |
| `submanifest` | [draft-fossil-submanifests-00](doc/trunk/docs/rfcs/draft-fossil-submanifests-00.txt) | S-card tree manifests: bounded per-commit manifest size for wide repositories |
| `sync` | [draft-fossil-sync-protocol-00](doc/trunk/docs/rfcs/draft-fossil-sync-protocol-00.txt) | HTTP replication of the artifact set between repositories |
| `cone` | [draft-fossil-sparse-cone-00](doc/trunk/docs/rfcs/draft-fossil-sparse-cone-00.txt) | sparse cones: partial worktrees and the sparse-store path for monorepos |


## Building

Requires Zig 0.16 or later.
Requires the pinned Zig 0.17.0 toolchain.

    zig build --release=fast   # the shipped binary, at zig-out/bin/zit
    zig-out/bin/zit version
    zig build test             # unit tests, one cited test per RFC clause
    zig build smoke            # interop check against a fossil binary on PATH

`--release=fast` is what the release builds use; a plain `zig build` is a
︙