| 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: |
3cc3cce1fec8206519ccef5875a62b36 |
| User & Date: | [email protected] on 2026-10-19 22:57:41.000 |
| Other Links: | branch diff | manifest | tags |
|
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 | |