Skip to content
go-libfossil Check-in [3cc3cce1fe]
Login

Check-in [3cc3cce1fe]

Overview
Comment:fix(cli): refuse a snapshot path holding a control byte or a reserved name

validateRepoPath now applies fossil's own rules for a new file name: file_is_simple_pathname in strict form (deck.StrictPathname), no byte below 0x20, and file_is_reserved_name, whose existing port in deck is exported as IsReservedName. Each refusal exits 1 and names the reason.

Timelines: family | ancestors | descendants | both | main | trunk | feat/cli-snapshot
Files: files | file ages | folders
SHA3-256: 3cc3cce1fec8206519ccef5875a62b36aa0c617b913618e686e90e56776731cc
User & Date: [email protected] on 2026-10-19 22:57:41.000
Other Links: branch diff | manifest | tags
Context
2026-10-19
23:00
fix(cli): diff A B PATH matches fossil's PATH rules

A PATH in neither version printed [] and exited 0; fossil diff --from A --to B fails with "not found". It now exits 2 (not found), and PATH also matches a directory, as fossil's file_dir_match does. The test runs fossil on the same repository as the oracle. check-in: c9268f5571 user: [email protected] tags: feat/cli-snapshot, main, trunk

22:57
fix(cli): refuse a snapshot path holding a control byte or a reserved name

validateRepoPath now applies fossil's own rules for a new file name: file_is_simple_pathname in strict form (deck.StrictPathname), no byte below 0x20, and file_is_reserved_name, whose existing port in deck is exported as IsReservedName. Each refusal exits 1 and names the reason. check-in: 3cc3cce1fe user: [email protected] tags: feat/cli-snapshot, main, trunk

22:55
fix(cli): print usage errors on stderr and pin their exit status 80

The documented status was right for the binary; go run turns it into 1. Usage text went to stdout, so an embedder reading stdout saw it on a failure. The doc now says which status a measurement under go run shows, and a test pins 80 for an unknown flag, a missing flag or argument and an unknown subcommand. check-in: 8fdb632783 user: [email protected] tags: feat/cli-snapshot, main, trunk

Changes