zit 0.3.36 adds zit uv, which lists, fetches, sends and deletes a
server's unversioned files, and the main-branch setting, which says and
sets a repository's main line.
No artifact, tag namespace, sync message, or on-disk repository format changed.
zit uv
Unversioned files are what a Fossil repository keeps without history:
releases, downloads. quarry keeps a repository's unversioned files in its
own storage and answers Fossil's protocol for them itself, so a zit
repository has no reason to hold a copy. zit uv moves them between the
server and plain files, and stores nothing in .zit:
zit uv list URL [-l]
zit uv pull URL NAME... [-o DIR] # or --all
zit uv push URL FILE... [--as NAME] [--mtime SECONDS]
zit uv rm URL NAME...
It speaks Fossil's own unversioned-file protocol, so the server can be
quarry or a stock fossil server. The newest time wins, as in Fossil, but
where Fossil's server quietly keeps its own newer copy, zit uv refuses an
older push or delete with a message, and confirms every change against the
server's catalog afterwards. Reading takes the server's o capability and
changing takes y; a server that shares nothing with the account says so.
The login is the repository's, as for push.
sync, push, pull and clone still leave unversioned files alone.
main-branch
zit settings main-branch prints a repository's main line, and
zit settings main-branch NAME sets it, as in Fossil. A forge needs the
main branch for its CI and branch rules, and guessing it from branch names
is wrong for any repository whose main line is not called trunk.
Fossil keeps main-branch local, and so does zit: it never arrives by
sync, so a clone or mirror reports trunk until whoever serves it sets it.
It belongs to one repository: it has no --global value and is never read
from a versioned settings file. zit settings --changed lists it only when
a repository chose something other than trunk, which is how a caller
tells a configured main branch from the default.
import-fossil --submanifest used to reset a converted store's main branch
to trunk. It now keeps the store's own.
Compatibility
- No on-disk repository or wire format changed; Fossil RFC revision 00 remains the target.
zit uvand themain-branchsetting are new.zit settingslists one more setting.
Qualification
zig fmt --check, zig build test, e2e, smoke (now 18 scenarios, the
new one zit uv against a stock fossil server), git-import-e2e,
git-export-e2e, and dst, plus the three-runner CI battery.