Artifact 5f6b02ad79a41c4f293e45aa877805867d3af0e60100496b20c554be04f9e517:
- File
docs/RELEASE-NOTES-0.3.5.md
— part of check-in
[9033c13f21]
at
2026-09-17 17:04:25
on branch trunk
— Remove issue-tracker numbers from source and documents
The tracker is disposable and does not live with the source, so a number is a dangling pointer. Every zit#NN and #NN reference in code comments, test names, help text, smoke labels, identifiers, release notes and errata is replaced by enough context to stand alone, or by a short plain statement of the problem. No behaviour changed. (user: dmestas, size: 4049) [annotate] [blame] [check-ins using]
zit 0.3.5
zit 0.3.5 makes a checkout mean the same thing to fossil and to zit. A
repository carries its policy in .fossil-settings/ — what is ignored, what
is binary, which line endings and encodings are tolerated, whether dotfiles
show. Fossil honoured all of it; zit honoured part of it, with its own glob
parser and its own idea of what a binary file is. A developer running stock
fossil against a zit server could have a file accepted at commit and
refused at push. That is closed.
No artifact, tag namespace, or sync message changed.
One checkout, two tools
Every versionable setting Fossil 2.28 recognizes is now read at every tier
— versioned file, repository, global, and --flag — from either
.fossil-settings/ or .zit-settings/:
- Glob lists follow Fossil's tokenizer: comma or whitespace separators,
single or double quotes, and a line is a comment only when its first byte
is
#.crnl-globis accepted as the alias ofcrlf-glob. clean-globworks as in Fossil:zit cleandeletes matching untracked files without--force, andkeep-globwins over it. A file Fossil would delete is deleted; nothing is undoable on either side.empty-dirsare created onopen,update, andcheckout.encoding-globexempts named files from the encoding check, and*disables it.dotfilesis honoured, and so ismimetypes.manifestaccepts Fossil's spellings (on,1,true,yes) as well as the letter form..fossil-settings/<name>.no-warnsilences the tier warning, in either directory.
Fossil's own checkout-state names — .fslckout, _FOSSIL_, .fos, their
-journal/-wal/-shm sidecars, and the manifest stamps — are control
names now: never listed as extras and never addable while stamps are on.
Content is classified the way Fossil's lookslike.c does it. A UTF-16 file
is a Unicode file, not a binary one, and an invalid-UTF-8 file that
encoding-glob permits is permitted — on the commit gate and on the push
gate alike, from one shared classifier. A file zit committed is a file a zit
server accepts.
The differential smoke now carries a checkout holding every
.fossil-settings name and requires both tools to read it identically:
the same extras with and without dotfiles, the same clean preview, the same
tree after update.
Behaviour changes
- Dotfiles are hidden by default, as in Fossil.
add,addremove,extras,clean, andstatusskip them unless--dotfilesis given ordotfilesis on;.zitignoreitself is hidden the same way. cleandeletesclean-globmatches without--force. Setkeep-globfor anything that must survive.- A global-tier
ignore-globnow reaches the sweep, and.zitignorecombines with the setting instead of shadowing it. - A UTF-16 file is no longer reported as binary by commit or by a server's push policy.
autosyncis no longer treated as versionable; a versioned value is ignored with a note.
Known gap
zit does not open a Fossil checkout in place: .fslckout is a SQLite
database zit will not read. zit open the repository into a fresh directory
instead. The remaining corners — glob class negation, a versioned-only
manifest at open, root-name case on Linux — remain open.
Compatibility
- Artifacts, tags, and the sync protocol are unchanged; Fossil RFC revision 00 remains the target.
- No on-disk format changed (the image schema stays at version 6).
- Flags added:
--dotfilesonadd,addremove,extras,clean, andstatus. Output changes only where the section above says so.
Qualification
zig build test, e2e, smoke (Fossil interop against a real fossil,
now with the settings-parity scenario), muscle (41 differential steps),
git-import-e2e, git-export-e2e, and dst, plus the three-runner CI
battery (macOS ARM64, Linux x86-64, Linux ARM64). The glob tokenizer and the
content classifier were each verified by differential test against the
fossil binary.