Skip to content
zit Check-in [580d0691c7]
Login

Check-in [580d0691c7]

Overview
Comment:tarball: write a check-in's files as a reproducible gzip tar (#95)

The effective-set walk already resolves sub-manifests and delta chains in canonical order, so this is that walk with an archive writer. Members carry the F card's permission, so an executable stays executable. Two runs of one version are byte-identical: history supplies the order and the timestamps, and no uid, gid, or build host is recorded. A file the store does not hold is refused by name -- a partial archive looks exactly like success.

Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 580d0691c7ed5cc8211e5a2dc78c1c478e8c66ca140db3d3afde0a8edecf42ac
User & Date: dmestas on 2026-08-17 14:41:42.831
Other Links: manifest | tags
Context
2026-08-17
15:32
tarball: check zit's archives against fossil's, modes included (#95)

Comparing zit to itself cannot catch a wrong permission bit -- writer and reader agree in the same direction. Fossil is an independent witness that already gets it right, so the harness unpacks both archives and compares member set, modes, and contents. It found one: -R was dropped at dispatch, which every test missed by running inside a checkout. Fossil versions symlinks where zit add still refuses them, so an imported corpus is also what finally exercises the l-perm path. check-in: 96a6d46d19 user: dmestas tags: trunk

14:41
tarball: write a check-in's files as a reproducible gzip tar (#95)

The effective-set walk already resolves sub-manifests and delta chains in canonical order, so this is that walk with an archive writer. Members carry the F card's permission, so an executable stays executable. Two runs of one version are byte-identical: history supplies the order and the timestamps, and no uid, gid, or build host is recorded. A file the store does not hold is refused by name -- a partial archive looks exactly like success. check-in: 580d0691c7 user: dmestas tags: trunk

14:29
Merge tag-list release filtering to trunk

Plain tag listing now reflects only singleton symbolic release names, while raw listing preserves complete repository tag state.

Refs ticket a679b1197b61127930f7e2a6478145c561dd54cc. check-in: 24356ebb90 user: dmestas tags: trunk

Changes
Added src/archive.zig version [c78171a790].