Skip to content
zit Tags and Properties
Login

Tags and Properties

Tags and Properties for Check-in 0973cf7e9e

Context
2026-07-17
15:21 • Edit [0973cf7e9e]: Mark "Closed". artifact: ae4c01005c user: dmestas
15:17
Reduce 'zit log' to the signed one-verb surface (drop -n windowing)

'zit log' carried a -n K windowed-log flag: an extra grammar mode (a state machine with a positional-only '--' separator and a -n value token in either order) and a bad_count offense, for a bound no other query verb exposes. Its sibling 'update' already documents the target shape โ€” one full check-in ID, help only, no windowing.

Collapse log onto that same one-positional grammar. parseLogArgs is now the plain scan parseUpdateArgs uses: -h/--help wins; -n, --all, and a bare '--' are all unknown options (log has no positional-only separator); a second positional is an extra argument. Drop LogArgs.count, the bad_count variant, parseLogCount, and walkLog's max_count / window early-exit โ€” the ancestry walk is unconditionally unbounded again.

Usage errors (missing check-in, unknown option, extra argument) now exit 2 via cli.usageError; a well-formed-but-non-canonical ID stays a validation failure at exit 1. Help and 'zit help log' print the trimmed single-verb text. Net -110 lines. Unit + e2e (209/209) green; fmt clean; dst 6x1000 ok. closed check-in: 0973cf7e9e user: dmestas tags: recover-inflight

15:15
Dispatch sync on method + Content-Type at any URL path, not just /xfer

A conformant Fossil client POSTs sync to the repository URL path unchanged and MUST NOT append /xfer (sync ยง4 L759-764): a bare 'fossil clone http://host:port/' POSTs to "/". The server previously required the /xfer path and answered 404 for anything else, so a root-URL clone from a stock client failed.

Drop the path from the dispatch decision entirely. classifyXfer now keys only on method (POST) and a request-valid, outer-compressed Content-Type (application/x-fossil); the URL path is accepted but unused. Remove xfer_path, requestPath, and the not_found/404 disposition; Disposition collapses to ok / method_not_allowed / unsupported_media_type. A non-POST stays 405 rather than a home redirect this sync-only server can't honor (and a 302 to "/" would loop now that "/" is a valid endpoint).

The over-real-HTTP e2e clone now targets the bare root "/" to prove a root-URL client interoperates. Unit + e2e green; fmt clean. check-in: 9636157a85 user: dmestas tags: recover-inflight