Skip to content
zit Timeline
Login

Timeline

48 descendants of 5da85550247dcddc

2026-11-13
00:30
0.14.6 notes: a clone cut short still finishes by pull leaf check-in: 114141777d user: dmestas tags: trunk, version-0.14.6
00:30
A clone saves the origin's project code before its first artifact, so one cut short still pulls from its origin check-in: 4441f6ec99 user: dmestas tags: trunk
2026-11-12
22:11
zit 0.14.6 check-in: 909c04258e user: dmestas tags: trunk
22:05
Harness mains write stdout and stderr as streams, so appending to a log no longer overwrites it; a source guard checks that and the allocation-walk helper check-in: 2ec16bd592 user: dmestas tags: trunk
15:08
A wrong-project refusal names the way out: clone, or push first to a new empty repository check-in: 18bf838535 user: dmestas tags: trunk
04:13
zit serve refuses a push or pull from another project; --adopt-project lets an empty store take the first push's code check-in: b7be292bcc user: dmestas tags: trunk
02:35
zit 0.14.5 check-in: d3dabbcaff user: dmestas tags: trunk, version-0.14.5
01:46
Never follow a redirect to another host or port; --resolve HOST:PORT:ADDR pins the address dialled check-in: 1a9c1eeb19 user: dmestas tags: trunk
00:13
Test servers die with the test process, and a test that leaves one running fails check-in: 4fea7c8055 user: dmestas tags: trunk
2026-11-11
23:13
Allocation-failure walks refuse in-place resizes, so their counts do not depend on the heap check-in: e225204f4b user: dmestas tags: trunk
22:29
The recorded-refs test lists its source from inside it, so an enclosing Git checkout does not redirect the path check-in: 511c21849f user: dmestas tags: trunk, version-0.14.4
20:37
zit 0.14.4 check-in: 07db1d14c8 user: dmestas tags: trunk
20:09
A saved login is sent only to the saved remote; --once on push, pull and sync saves nothing check-in: 0868d4d50a user: dmestas tags: trunk
18:59
import-git: add from a source cut at held commits, list recorded refs, take an unconvertible encoding and tags of tags and blobs check-in: 4b32a0edf6 user: dmestas tags: trunk
04:40
Release 0.14.3 check-in: 34989e6949 user: dmestas tags: trunk, version-0.14.3
04:36
import-git deltas each artifact against its hint first, as Fossil's import does, and counts the commits it exports; submanifest show reads the saved log index check-in: 677c138de2 user: dmestas tags: trunk
2026-11-09
06:39
Release 0.14.2 check-in: 6b529370ce user: dmestas tags: trunk, version-0.14.2
06:34
addremove, extras and status --extra always include zit's own control files and say once how many dot-paths they skipped; clean still leaves control files alone check-in: 15b565dd69 user: dmestas tags: trunk
03:08
The diff cache encoder sizes and frees its allocations by name instead of taking them from an arena, so its allocation count is the same on every heap check-in: d5188455c9 user: dmestas tags: trunk, version-0.14.1
02:36
Release 0.14.1 check-in: 7eb82c7f9e user: dmestas tags: trunk
02:31
annotate caches each version-to-version diff and splits each version into lines once, so a later annotate at any limit replays its diffs check-in: a6da9b88cc user: dmestas tags: trunk
2026-11-08
23:27
Linux ARM64's CI job gets a 45-minute limit; macOS and Linux x64 keep 30 check-in: a67d9d3267 user: dmestas tags: trunk
22:29
Release 0.14.0 check-in: ec73978f5d user: dmestas tags: trunk, version-0.14.0
22:21
The shun fingerprint folds the masked bit only for signed rows, so a store with plain shun rows keeps the caches older releases built check-in: 5e7b1fdc7a user: dmestas tags: trunk
21:33
sync and pull -F json report erasures_deferred, the carried erasure rows not yet fully applied check-in: ff95f2b7df user: dmestas tags: trunk
19:59
Sync-draft citations re-keyed to the draft's line numbers after the erasure section check-in: 9f9a10e504 user: dmestas tags: trunk
19:54
Sync carries signed erasures: an owner-signed shun row in Fossil's /shun area is asked for on every zit session, verified against the repository's pinned erasure key, and applied after its not-before time check-in: 54831f82d6 user: dmestas tags: trunk
19:37
annotate -n answers from the blame cache when no walked version masks a parent below the window, and log PATH walks its ancestry with bitsets check-in: 3314298ade user: dmestas tags: trunk
16:57
0.13.0 notes: upgrade costs measured on a forge's stores check-in: 77edd09407 user: dmestas tags: trunk
16:17
A daemon lets go of its store's lock once it stops listening, and a start waits up to 2 s for a lock whose daemon no longer answers on the socket check-in: 4f586929fd user: dmestas tags: trunk
14:08
Release 0.13.0 check-in: b1da505531 user: dmestas tags: trunk, version-0.13.0
11:59
Daemon opens the commit core on first commit, catches its reader up in place, and pages feed with limit check-in: 04aeaeface user: dmestas tags: trunk
05:22
Three-way merge walks the two edit scripts as Fossil's merge3.c does (D. Richard Hipp), so an edit beside the other side's change merges cleanly and every merge decision and merged text matches fossil 3-way-merge, except where a final newline or a byte-order mark is kept on purpose check-in: c1b7a787d9 user: dmestas tags: trunk
04:02
log for a path takes --offset, as Fossil's finfo spells it, and --cursor, the daemon's cursor, returning the next one in -F json; a check-in's entry for one file is found by searching its manifest instead of parsing it whole, and JSON rows take user and comment from derived state, so a cursor page of a deep history costs tens of milliseconds check-in: 1ed38cab8a user: dmestas tags: trunk
03:00
annotate finds a file's versions from the file-history index and walks only as far as -n or the nearest cached version needs, and a repository lookup that scanned the whole image per call builds a table instead, so annotate -n 50 on a 644 MB store costs 50 ms instead of 38 s check-in: 19bcb02c0c user: dmestas tags: trunk
01:44
The line diff and merge3 size every buffer from the line counts up front, so their allocations depend only on the input check-in: 501d2ba05f user: dmestas tags: trunk
01:18
Every line diff in zit, from diff and its line counts to annotate and merge, is a port of Fossil's diff.c line diff (D. Richard Hipp), replacing the patience and Myers engines, so zit aligns repeated lines as Fossil does and annotate credits only the lines a check-in's diff adds; the blame cache and line-count cache are rebuilt check-in: 382fad4bad user: dmestas tags: trunk
2026-11-07
23:33
annotate keeps a per-file blame cache of recently annotated versions and starts its walk from the nearest cached ancestor, so annotating a tip after a new commit costs tens of milliseconds instead of seconds; an answer that depended on a missing parent, a gap, a limit or a policy absence is never cached check-in: a1c2a0fd4d user: dmestas tags: trunk
22:21
log for a path reads content only for the rows on the page, deciding the rest from the file index, so a 200-row page of a 2,000-version history costs tens of milliseconds; annotate -n N stops after N versions of the file as Fossil's annotate does, leaving older lines unattributed check-in: 3b7445b9cb user: dmestas tags: trunk
20:28
Release 0.12.1 check-in: e5e40bc894 user: dmestas tags: trunk, version-0.12.1
20:02
annotate frees each version once nothing still reads it and bounds its content cache, so a 29,000-line file over 1,600 check-ins peaks at 76 MB instead of 2.7 GB; log for a path lists newest first by check-in time, ties broken as timeline does, so -n and the daemon's cursor page the history without repeats or gaps check-in: bcda930fb8 user: dmestas tags: trunk
19:00
ls --long takes a file's size from its frame and its class from the recorded memo, as Fossil's ls -v reads blob.size, rebuilding a file only when its class is unknown; zit verify, not ls, proves content readable check-in: 6aba9adfd9 user: dmestas tags: trunk
17:49
The 0.12.0 notes give the forge's measured first-command rebuild costs, which land on whichever command comes first check-in: 5a94678fe8 user: dmestas tags: trunk
16:32
Release 0.12.0 check-in: 9fd8bf44bd user: dmestas tags: trunk, version-0.12.0
16:06
The log index and the file-history index check their contents in 4 KiB blocks as a call reads them, behind a header and block table checked at open, so an open no longer checksums whole files; a damaged block is repaired from the log, and a log that cannot be rescanned fails as an unreadable store; the file index gains a path table so a lookup bisects check-in: b377071cb2 user: dmestas tags: trunk
13:22
log for a path reads each sub-manifest node through the walk's plaintext cache and parses only the line that decides the descent, so a one-shot log of 20 versions on a 42k-file tree store costs about 3 ms instead of 11 check-in: 5aea2fedb9 user: dmestas tags: trunk
12:29
A diff between two check-ins walks both trees together and skips every sub-manifest both share by hash, so a one-file diff on a 42k-file tree store costs about 3 ms instead of 83; used by diff, the daemon's diff and timeline -v check-in: 3d9d26ef9b user: dmestas tags: trunk
03:02
Release 0.11.0 check-in: b182f0e6c1 user: dmestas tags: trunk, version-0.11.0
02:39
Sync and pull open the store before reading leaves for the fork report, so a torn last frame left by a crash is repaired first; the simulator counts a forked sync or pull as success check-in: 5da8555024 user: dmestas tags: trunk