This Day In History For 2027-09-17
1 Year Ago (more context)
|
2026-09-17
| ||
| 19:54 | Note: The round that pushes several check-ins technote: [a4197c3b69] user: dmestas | |
| 19:53 | • Changes to wiki page "Home" artifact: ea66897c21 user: dmestas | |
| 19:12 | • Edit [575cd3fcdd]: Add tag "version-0.3.21". artifact: 9afe2d8baa user: dmestas | |
| 19:12 |
Release 0.3.21
A multi-check-in fossil push lands; --httptrace reaches a zit server. check-in: 575cd3fcdd user: dmestas tags: trunk, version-0.3.21 | |
| 19:06 |
serve: accept application/x-fossil-debug
fossil --httptrace sends its cards uncompressed under this type, and the server refused it with a bare 415 on the premise that the reference client never sends it. The exchange now tells handleXfer whether the body is a zlib container or plain cards; the reply is framed as before, and fossil reads the reply's framing off the reply's own content type. x-fossil-uncompressed stays reply-only. check-in: cc96464a51 user: dmestas tags: trunk | |
| 19:06 |
sync: resolve a pushed delta against a basis delivered in the same round
fossil sends a batch of check-ins as one round with each manifest a delta against the previous one, and the scan reconstructed every pushed delta against the committed store, so the basis was never there and the round was refused as a malformed file card. Every multi-check-in push from a stock fossil failed. The scan now parks a delta whose basis is not held and settles it once the whole round is seen, to a fixpoint, so order within the round does not matter. A basis absent from both the store and the round is refused by name: error delta basis not held: TARGET against BASIS. Smoke S16 pushes three fossil check-ins in one round and checks all three landed. check-in: df556319a8 user: dmestas tags: trunk | |
| 17:04 |
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. check-in: 9033c13f21 user: dmestas tags: trunk | |
| 16:27 |
erratum: sync §5.2 spells the bad-command text as bare words
The ABNF and §10.1 already make every error card one fossilized TEXT; the unknown-operator prose writes "error bad command: LINE" and reads as four tokens. Records the wire form and the two-token client rule. check-in: ec7d3fc9f7 user: dmestas tags: trunk | |
| 16:01 | Note: The refusal a fossil client could not read technote: [1ca5ef35af] user: dmestas | |
| 16:00 | • Changes to wiki page "Home" artifact: eb4d4e01ed user: dmestas | |
| 15:29 | • Edit [ae396d9bac]: Add tag "version-0.3.20". artifact: b262bff556 user: dmestas | |
| 15:29 | • Edit [d11082197c]: Cancel tag "version-0.3.20". artifact: ddfdeac277 user: dmestas | |
| 15:29 | cli: format the remote URL check check-in: ae396d9bac user: dmestas tags: trunk, version-0.3.20 | |
| 15:27 | • Edit [d11082197c]: Add tag "version-0.3.20". artifact: d919f61af0 user: dmestas | |
| 15:27 |
Release 0.3.20
Server error cards are encoded so a fossil client reads a refusal; remote refuses a non-URL. check-in: d11082197c user: dmestas tags: trunk | |
| 15:21 |
remote: refuse an argument that is not an http(s) URL
zit remote list saved the word list as the remote and reported success; the loss surfaced at the next push. The help already defines the argument as an http:// or https:// address, and the parser now holds it to that with a usage error that says there are no subcommands. A valid URL is still stored verbatim. check-in: c280025388 user: dmestas tags: trunk | |
| 15:21 |
sync: encode every server error card
The bad-command and malformed-card refusals were written with raw spaces, so on the wire they were four tokens. A stock fossil client reads an error card as two, reported the rest as unknown commands, dropped the refusal and printed its success summary; a refused push looked landed and re-sent the same artifacts on every autosync. Every error card is now assembled at one point with its text encoded, as fossil's own server writes it. A test drives each refusal through the emitter and fails on a raw space after the operator. check-in: 8f5dff81b0 user: dmestas tags: trunk | |
| 14:34 | Note: The open that log paid twice technote: [a04e06fec0] user: dmestas | |
| 14:27 | • Changes to wiki page "Home" artifact: 574ab70f8e user: dmestas | |
| 13:46 | • Edit [61ae22616f]: Add tag "version-0.3.19". artifact: db6d6a0354 user: dmestas | |
| 13:46 |
Release 0.3.19
log opens once, on the zero-parse image; the open mode is declared, never defaulted. check-in: 61ae22616f user: dmestas tags: trunk, version-0.3.19 | |
| 13:39 |
log: open once, on the zero-parse image
log reached past the open funnel and called Repository.open with the default options, which is the full record replay meant for write verbs, and did so twice for a symbolic name. On pkgsrc that was 0.94s before the first row; on the image path it is 0.05-0.10s, output byte-identical on every route. The open mode has no default any more: every direct caller declares it, so the next verb written past the funnel cannot inherit the expensive one silently. An e2e runs every log route under the derive-footprint seam and fails if any of them replays a record. check-in: 0910bc00f5 user: dmestas tags: trunk | |
| 00:08 |
ci: run on every branch push, still never on a tag
A push trigger naming only a tag filter runs for tag pushes alone, so the tags-ignore alone ran nothing for two commits. branches: ['**'] restores every branch; the pin now allows exactly that form. check-in: c004c81e03 user: dmestas tags: trunk | |