Check-ins with non-propagating tags:
|
2026-10-14
| ||
| 02:46 | zit 0.5.0 check-in: eda123dd6e user: dmestas tags: trunk, version-0.5.0 | |
|
2026-10-13
| ||
| 02:40 | Release workflow: Zig 0.17.0 check-in: 5e81556352 user: dmestas tags: trunk, version-0.4.0 | |
|
2026-10-09
| ||
| 03:36 | Release 0.3.42 check-in: c2dd1794b3 user: dmestas tags: trunk, version-0.3.42 | |
|
2026-10-08
| ||
| 22:10 | Release 0.3.41 check-in: 408e03e8d7 user: dmestas tags: trunk, version-0.3.41 | |
|
2026-10-07
| ||
| 05:23 | Release 0.3.40 check-in: 59bc4dded1 user: dmestas tags: trunk, version-0.3.40 | |
|
2026-10-06
| ||
| 21:17 | Release 0.3.39 check-in: 938da971fb user: dmestas tags: trunk, version-0.3.39 | |
|
2026-10-05
| ||
| 22:16 | Release 0.3.38 check-in: bda4cf23d0 user: dmestas tags: trunk, version-0.3.38 | |
|
2026-10-04
| ||
| 17:44 | Release 0.3.37 check-in: f8fa6f4f77 user: dmestas tags: trunk, version-0.3.37 | |
|
2026-10-02
| ||
| 14:32 | Release 0.3.36 check-in: 15936cb158 user: dmestas tags: trunk, version-0.3.36 | |
|
2026-09-28
| ||
| 23:54 | Release 0.3.35 check-in: 080052acdf user: dmestas tags: trunk, version-0.3.35 | |
| 16:44 |
zit git export/status: a remembered Git mirror with autopush
git export exports into MIRROR and remembers it, with an autopush URL, push branch and email domain, in repository config; a bare re-run does the round trip. Authors' addresses come from their user-table contact, set with the new users contact. Autopush URLs carrying a password are refused. The config payload bound is now sized from its key count. Release 0.3.34. check-in: 5fce7e867d user: dmestas tags: trunk, version-0.3.34 | |
| 11:59 |
Lock the store with exclusive-create lock files instead of flock
Writers create .zit.lock with O_CREAT|O_EXCL before opening the store. A waiter names the holder and gives up after a minute; a dead holder's lock is broken; pack and shun --force hold the writer lock across their final check and rename. Release 0.3.33. check-in: d6cf7bf59c user: dmestas tags: trunk, version-0.3.33 | |
| 02:39 |
Take the writer lock inside LogStore.open and test the lock class
LogStore.open now takes the exclusive lock before it reads the file's length and scans for the end, and a read-only handle refuses to append. purge undo opens the store through the shared writer path. A new DST sweep runs two to four writers interleaved against one log through a file that models the lock. It flags unlocked or misplaced appends as they happen, checks each writer sees everything committed before it locked and reads back its own writes, including deltas. A source check fails on any write-mode open of the store outside openStoreAppend. An e2e test races commits, tags and user-table writes on one store and counts what landed. check-in: 5c445bb3f3 user: dmestas tags: trunk, version-0.3.32 | |
|
2026-09-26
| ||
| 17:56 |
landing accept: merge the tip it read once; --expect-tip refuses a moved branch
accept read the branch tip up to three times and merged it by name, so a push mid-accept could be merged unprobed. It now reads the tip once and merges that hash on both paths. --expect-tip HASH refuses with exit 6 and nothing written when the branch is no longer at HASH. Release 0.3.31. check-in: 60890d6661 user: dmestas tags: trunk, version-0.3.31 | |
|
2026-09-24
| ||
| 16:44 |
transport: refuse Basic over plain http to another host; drop it on a cross-host redirect
A Basic challenge was answered whatever the scheme, so over http the password crossed readable and the saved remote repeated it. It is now refused to non-loopback hosts, naming the https URL; a redirect to another host drops the credential; plain http to another host notes it on stderr. Release 0.3.30. check-in: b637cbd37c user: dmestas tags: trunk, version-0.3.30 | |
|
2026-09-23
| ||
| 18:33 |
inflate: a truncated dynamic-block header is the end of the stream, not a crash
tossBitsShort added the consumed bits where it must subtract them, so a header ending one byte short tossed past the end of the input and the next peek read a wrapped length off the stack. Found by the nightly soak four nights running. Release 0.3.29. check-in: 362f18d357 user: dmestas tags: trunk, version-0.3.29 | |
| 13:47 |
config export, and merge --probe over a stack
config export AREA [FILE] writes fossil's configuration export format, so an area can be backed up before import replaces it; import and merge now apply /shun cards, add-only in both modes. merge --probe with several NAMEs answers each against TARGET with the ones before it landed, holding merged files in memory and moving the merge base with the landing. Release 0.3.28. check-in: c5243e961f user: dmestas tags: trunk, version-0.3.28 | |
|
2026-09-22
| ||
| 17:34 |
protected branches: admit a cancel on a check-in the server does not hold
The pusher's recovery from a refused push, amend --branch, was refused too. A cancel on an unheld target removes it from nothing held, so the check-in is judged where it joins, with a same-round branch move counted. A held check-in re-offered in a push is no longer judged as joining. The e2e raw-push fixture compared raw digests to hex and excluded nothing. Release 0.3.27. check-in: d4571a4b1a user: dmestas tags: trunk, version-0.3.27 | |
|
2026-09-20
| ||
| 22:07 |
tarball and zip: consume the end-of-options marker
The marker branch fell through to the operand slots, so it took VERSION's place and OUTPUTFILE was refused. A value option's argument is now also taken before the marker is considered. Release 0.3.26. check-in: 28cd7f506a user: dmestas tags: trunk, version-0.3.26 | |
| 13:25 |
Release 0.3.25
A bare -- ends the options in every verb; zip names are flagged UTF-8. check-in: 726efdca6b user: dmestas tags: trunk, version-0.3.25 | |
|
2026-09-19
| ||
| 14:45 |
Release 0.3.24
Closing a protected branch is a protected move; a damaged sync container is an error, not a crash. check-in: 3bcbc1c903 user: dmestas tags: trunk, version-0.3.24 | |
|
2026-09-18
| ||
| 11:37 |
Release 0.3.23
The transport answers an HTTP Basic challenge; a gated first round is no longer fatal. check-in: 2a3106fcaf user: dmestas tags: trunk, version-0.3.23 | |
| 01:52 |
Release 0.3.22
clone and pull authenticate; a private repository is readable. check-in: d75c7a741d user: dmestas tags: trunk, version-0.3.22 | |
|
2026-09-17
| ||
| 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 | |
| 15:29 | cli: format the remote URL check check-in: ae396d9bac user: dmestas tags: trunk, version-0.3.20 | |
| 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 | |
|
2026-09-16
| ||
| 22:11 |
Release 0.3.18
The file-history index is built by the derive at ingest, fossil's way. check-in: 09d191e634 user: dmestas tags: trunk, version-0.3.18 | |
| 13:44 |
Release 0.3.17
A push with no URL keeps its credential; the tree-manifest index build is proportional to what changed. check-in: dbfe2adebc user: dmestas tags: trunk, version-0.3.17 | |
| 07:42 |
Release 0.3.16
File index works on submanifest stores; artifact shows S cards; a saved login authenticates a push that names no user. check-in: 8cfa57ecd3 user: dmestas tags: trunk, version-0.3.16 | |
|
2026-09-14
| ||
| 16:27 |
Release 0.3.15
Makes the file-history index durable across commits. check-in: 37e2519ac5 user: dmestas tags: trunk, version-0.3.15 | |
| 13:43 | 0.3.14: version bump and release notes check-in: 37a5af6b08 user: dmestas tags: trunk, version-0.3.14 | |
|
2026-09-11
| ||
| 20:39 | 0.3.13: version bump and release notes check-in: 2a427c830b user: dmestas tags: trunk, version-0.3.13 | |
| 18:49 | 0.3.12: version bump and release notes check-in: 5a962c69ff user: dmestas tags: trunk, version-0.3.12 | |
|
2026-09-10
| ||
| 23:56 | 0.3.11: version bump and release notes check-in: b1dc991ac0 user: dmestas tags: trunk, version-0.3.11 | |
|
2026-09-09
| ||
| 22:53 | 0.3.10: version bump and release notes check-in: 77f89b0bec user: dmestas tags: trunk, version-0.3.10 | |
| 14:26 | 0.3.9: version bump and release notes check-in: c641321230 user: dmestas tags: trunk, version-0.3.9 | |
|
2026-09-07
| ||
| 01:44 | 0.3.8: version bump and release notes check-in: f0b4cd974f user: dmestas tags: trunk, version-0.3.8 | |
|
2026-09-06
| ||
| 21:49 | 0.3.7: version bump and release notes check-in: 1f12f7b9a9 user: dmestas tags: trunk, version-0.3.7 | |
| 14:06 |
sync: read the Content-Type media type, not the whole header (zit#179)
A front web server that appends "; charset=utf-8" made the clone reply look compressed, so its plaintext was read as a 1.6 GB container and refused as too large. parseMediaType now ignores parameters and case, as fossil does; serve uses it instead of its own copy. check-in: 8488af309e user: dmestas tags: trunk, version-0.3.6 | |
|
2026-09-05
| ||
| 17:34 | 0.3.5: version bump and release notes check-in: 882eaddc57 user: dmestas tags: trunk, version-0.3.5 | |
|
2026-09-02
| ||
| 22:25 | 0.3.4: version bump and release notes check-in: f785e3286b user: dmestas tags: trunk, version-0.3.4 | |
| 02:57 | 0.3.3: version bump and release notes check-in: 441d99370f user: dmestas tags: trunk, version-0.3.3 | |
|
2026-08-31
| ||
| 17:02 |
image: carry the comment and login per rid, so a listing reads no manifest
zit leaves read and parsed a whole manifest per row — through its delta chain — for the comment's first line and the login. A warm store is image-backed and the image carried neither, so commentOf answered null and every row fell back to that read: 472 leaves, one second, on sqlite. The image now materializes both: the comment CSR-addressed per rid, the login interned (a repository has a handful of committers). layout_version 6 — an older image is a miss and rebuilds, as the disposable cache intends. 0.3.2. check-in: 71d327a695 user: dmestas tags: trunk, version-0.3.2 | |
| 01:01 | import-fossil help: keep 'zit submanifest enable' on one line check-in: edac449311 user: dmestas tags: trunk, version-0.3.1 | |
|
2026-08-29
| ||
| 10:18 |
release: prepare zit 0.3.0
Fossil parity on the everyday verbs, landings and strata, protected branches behind a trusted front, Fossil's user table, and the read paths that now scale with the change rather than the store. check-in: 1e2a7bbc0d user: dmestas tags: trunk, version-0.3.0 | |
|
2026-08-19
| ||
| 16:58 |
release: prepare zit 0.2.0
The 0.1.x line grew from 38 dispatched verbs to 61, gained the sub-manifest dialect, and grew a layered derived-state cache. 0.1.4's notes mention sub-manifests once and never say cache, so the notes here cover that machinery rather than only what changed since 0.1.4. check-in: 09e80bc9ef user: dmestas tags: trunk, version-0.2.0 | |
|
2026-08-18
| ||
| 19:22 | release: prepare zit 0.1.4 check-in: 4c2286bcb4 user: dmestas tags: trunk, version-0.1.4 | |
|
2026-07-25
| ||
| 14:51 |
Release zit 0.1.3
A serving release over 0.1.2. Where 0.1.2 made a large repository cloneable, 0.1.3 makes serving one fast and lean. A server against a large repository comes up immediately: the listener opens before the repository is read, so a client queues in the accept backlog while the server primes rather than being refused during a startup a large store made long. A push no longer stalls inside its own reply deadline; the snapshot rebuild it triggers now runs between connections. Serving reads the repository through an on-demand log-offset index rather than a resident copy, so peak memory to serve a 67,499-artifact repository fell from about 157 MB to about 32 MB, with clones byte-identical to before. Also: the end-to-end suite is safe to run concurrently with itself (fresh loopback ports), and the unclassifiable-artifact tolerance rule is now covered by deterministic simulation and an end-to-end scenario. check-in: a469147254 user: dmestas tags: trunk, version-0.1.3 | |
|
2026-07-23
| ||
| 17:02 |
Repository State draft: carry the unclassifiable-artifact clarification
Regenerated from the RFC suite after the erratum repo-state-00-s4-unclassifiable-artifact was applied. New §4.4 states what assembly does with a stored artifact classification rejects: an artifact whose octets hash to the name it is stored under is opaque to repository state and MUST NOT fail the assembly, while one whose octets do not hash to its name is a distinct integrity failure and MUST be rejected. The remaining §4 subsections renumber behind it. The draft was previously silent on this, and that silence was the trap: an implementation conforming to both drafts could reject an artifact per the required-card rule and then treat that rejection as fatal, which made the canonical fossil repository unassemblable. src/update.zig implements the rule this text now carries. check-in: 42e1faa9fc user: dmestas tags: trunk, version-0.1.2 | |
|
2026-07-20
| ||
| 21:26 |
Release zit 0.1.1
Harden native Linux filesystem behavior, deterministic repository iteration, update and undo transitions, Fossil smoke-process containment, and the three-platform CI matrix. check-in: be97df0398 user: dmestas tags: trunk, version-0.1.1 | |
| 10:38 |
README: point to the release notes, name the coverage step
The limitations table stopped short of where a reader would look for more detail; it now points at the release notes rather than growing into a second copy of them. The named build steps were missing zig build cov, the kcov coverage report over the test suite. check-in: 7f7828b7d6 user: dmestas tags: trunk, version-0.1.0 | |