Skip to content
zit Timeline
Login

Timeline

43 descendants and 50 ancestors of 34e89fb1b8660338

2026-11-05
13:19
A sender answers a gimme or uploads an artifact it stores as a delta in Fossil's delta form, sending the stored delta when its basis is held, unshunned, in the requester's cone and readable by the peer, so a pull of a few one-file check-ins moves kilobytes leaf check-in: d8cc78e946 user: dmestas tags: trunk
10:37
Sync, pull and a server taking a push store an artifact received whole as a delta, a check-in against its parent, so receiving a one-file check-in costs about what the sender paid instead of a full manifest check-in: 863ba33f03 user: dmestas tags: trunk
09:31
A flat manifest is stored as a delta of its skip base, the ancestor at its height with the lowest set bit cleared, so a chain is popcount(height) deep and no commit stores a whole manifest; pack keeps the structure. Skip deltas after Subversion (Greg Hudson) check-in: bed8346191 user: dmestas tags: trunk
02:23
log CHECKIN PATH and annotate follow renames, continuing under the old name below the check-in that recorded one, with --no-follow for the name-literal view; crosslink adds a rename line and log -F json names each row check-in: dc3fb3ca95 user: dmestas tags: trunk
00:47
commit -R STORE --stdin PATH records one file's bytes from stdin as a check-in with no checkout of the caller's, holding the store's lock throughout so concurrent writers land in order; unchanged bytes exit 3 check-in: fd764eed5e user: dmestas tags: trunk
2026-11-04
23:45
The cache carries a checksum of its image alone, so an open checks what it reads instead of the whole cache, and the record body is read through a mapping instead of copied onto the heap check-in: e9027611fe user: dmestas tags: trunk
23:04
A sparse cone can carry the parents property (--cone-parents): the root's files and the files directly in each parent directory of a member are covered too, so a narrow cone is navigable; the sparse-cone draft states the rule and its cone-parents pragma check-in: 2199ee2ef3 user: dmestas tags: trunk
21:15
log CHECKIN PATH and diff between check-ins take -F json, in Fossil's field names, so an application reads a file's history and a two-version diff without parsing text check-in: 49bd94f30d user: dmestas tags: trunk
20:15
Persist stores a received delta whose basis is not memoised as it arrived, and checks every such delta before the commit by walking each delta tree once, so a large clone no longer rebuilds each artifact through its whole chain check-in: d8c302d1ab user: dmestas tags: trunk
19:50
import-git --into opens the destination's log through its persisted scan index, so a long history is not walked frame header by frame header before the import starts check-in: fec7b411d2 user: dmestas tags: trunk
19:32
import-git --into checks a mapped check-in by lookup when the map's inventory hash already proves the store holds what the import wrote, instead of reading every check-in back through its delta chain check-in: 88fdaf41b7 user: dmestas tags: trunk
18:19
A horizon clone's classification is saved with the unfetched file versions its kept manifests cite, by name, so a no-op sync resumes from it instead of classifying the whole store again check-in: e76d97937a user: dmestas tags: trunk
17:35
revert with no paths finds what changed first, as status does, and restores and journals only that, looking files up in a check-in parsed once, so discarding one edit on a large tree no longer reads every file check-in: 194b70bd59 user: dmestas tags: trunk
16:01
The horizon draft says a tied candidate that another descends from through any parent is dropped, merge parents included check-in: b09ee3ed91 user: dmestas tags: trunk
15:52
zit init --submanifest K starts a repository with sub-manifests on and k pinned, so a tree that will grow wide is a tree from its first check-in check-in: 1fbc90c725 user: dmestas tags: trunk
14:29
File reads and writes move at most 1 GiB per call, so on macOS a store whose cache passes 2 GiB resumes from it instead of re-deriving the whole history check-in: 3d4b8d295c user: dmestas tags: trunk
14:08
zit serve --read-only refuses every push while serving clones and pulls check-in: a7f4801ca7 user: dmestas tags: trunk
13:37
A horizon name breaks an mtime tie by ancestry before the lowest hash, as update does, so a branch committed within one clock tick resolves to its tip; the horizon draft says so check-in: f3b027880e user: dmestas tags: trunk
13:13
repo-cksum is off unless turned on, so a commit no longer reads every blob of the tree for the R card and a one-file commit costs what changed check-in: f19829119c user: dmestas tags: trunk
11:36
diff refuses a version whose content is not in the store, shunned, purged or not received, instead of showing the file emptied check-in: e31d231096 user: dmestas tags: trunk
11:30
A horizon clone's sync advances its delivered cursor only by what it received, and a stored cursor past the end of the log is ignored, so check-ins committed after the first sync reach the origin check-in: 4b3c7cadd6 user: dmestas tags: trunk
11:23
A commit refuses to publish when another commit moved its checkout while it was being prepared, and checks the fork guard against the parent it was prepared on, so two commits in one checkout no longer fork the branch check-in: 1e76491a72 user: dmestas tags: trunk
2026-11-03
01:24
A release waits for ci to pass on its tagged commit instead of re-running the Debug battery, and smokes the ReleaseFast build it ships check-in: 5dd2d6edb6 user: dmestas tags: trunk
01:17
CI runs the Git differential, simulation, smoke and muscle lanes side by side through one zig build lanes step check-in: bf178c424a user: dmestas tags: trunk
00:26
Unit tests and e2e tests each run as four processes serving every fourth test, through Zig's test runner vendored with a --shard flag, so the suites use a runner's cores check-in: afd89f5a17 user: dmestas tags: trunk
2026-11-02
23:06
zit runs on a size-class heap, so a block freed on one thread is reused on any, and an import's warm-up reuses what the import freed check-in: 3d0cc41587 user: dmestas tags: trunk
23:05
A full derive keeps less of the history in memory: comments go to a mapped temp file, edges thread through the linkage rows, tag rows sit in a flat per-rid table with pooled values, users and comment offsets are dense arrays, and the image streams to the cache file check-in: 0212aeede4 user: dmestas tags: trunk
23:05
advance's gates read a checkpoint's header, not its whole body, so a cold open no longer reads back the checkpoint it just wrote check-in: 05354a9331 user: dmestas tags: trunk
19:18
A pushed sub-manifest setting needs Setup as well as Admin; a card refused for want of it refuses only itself, and the push's other settings and content still apply check-in: f859a3785a user: dmestas tags: trunk
19:18
submanifests §6.3, sync-protocol §6.6: pushing the sub-manifest settings requires Setup, which the sync draft now defines; a card refused for want of it refuses only itself check-in: a8cc82f108 user: dmestas tags: trunk
15:27
A client says the peer's repository is busy only for the 503 a zit server sends for a held lock, which now carries a body naming it; any other 503 gets the plain status line check-in: 752484c154 user: dmestas tags: trunk
2026-10-31
22:53
The HTTP Basic e2e starts its gate through env, so a version manager's python3 shim on the test's PATH cannot leave it unstarted check-in: 6a506a547b user: dmestas tags: trunk
22:51
Release 0.8.1 check-in: 9d84f49c50 user: dmestas tags: trunk, version-0.8.1
22:51
import-git exports a pull request's head only when a squash took it, names its commits pull/N and closes that branch; other pull request refs are ignored check-in: 69e5f1fa9f user: dmestas tags: trunk
20:36
The reference names MODULE lines under status and points from import-git to zit modules sync check-in: ca1d50e160 user: dmestas tags: trunk, version-0.8.0
20:34
Release 0.8.0 check-in: a6ed4c0297 user: dmestas tags: trunk
19:45
The tree diff walks both trees side by side, so it reports exactly the files that differ and reads only the sub-manifests on changed paths (libfossil's fsl__deck_tree_diff) check-in: 151b7da610 user: dmestas tags: trunk
19:08
import-git --with-submodules imports each submodule beside DEST and pins zit check-ins; export-git maps zit lines back through the sibling's import map check-in: 3065c74d60 user: dmestas tags: trunk
18:28
zit modules lists, syncs and pins the modules .zit-modules names, and status names a module off its pin check-in: 83a3a5d26e user: dmestas tags: trunk
17:37
import-git records a squash-merged pull request as a cherry-pick of its refs/pull/N/head check-in: 4e9f6707aa user: dmestas tags: trunk
17:01
import-git keeps submodule pins in a .zit-modules ledger and says how many it pinned; export-git writes them back as gitlinks check-in: e6b1d13019 user: dmestas tags: trunk
14:08
Release notes for 0.7.5 cover served Git mirrors check-in: 796ac77e27 user: dmestas tags: trunk, version-0.7.5
14:08
The soak runs on its own runner check-in: 7e08f0d16f user: dmestas tags: trunk
14:07
import-git --into and info --imported-head keep a map valid when a store gains clusters, wiki, tickets or tags; only a check-in or branch change the import did not write makes it stale check-in: 34e89fb1b8 user: dmestas tags: trunk
12:50
Release 0.7.5 check-in: f01592ef81 user: dmestas tags: trunk
12:48
Files a delta manifest inherits from its baseline no longer carry the baseline's rename markers check-in: 18a8118699 user: dmestas tags: trunk
12:48
zit config pull, import, merge and export carry fossil's interwiki area, kept in the store as setting frames check-in: 3d3fed4bcd user: dmestas tags: trunk
12:48
zit serve refuses a horizon pull for a held set it does not hold, and zit pull quotes the refusal check-in: c10bf5181f user: dmestas tags: trunk
00:04
extras, add and clean stop at a nested zit or fossil checkout, as fossil does; naming the nested checkout itself still walks into it check-in: e31d220a2f user: dmestas tags: trunk
2026-10-30
22:59
zit landing settles an open landing from the merge that took its branch into the target, so a branch merged from a clone with no reply can be proposed again check-in: 792ff466b4 user: dmestas tags: trunk
21:48
zit serve answers reqconfig /config with one config card per setting, and a pushed config applies every card it carries check-in: 6c321ad721 user: dmestas tags: trunk
20:28
import-git's verifier reads the witness and the import map back from staging a window at a time instead of holding them, and verify, publish and the cache warm-up report progress check-in: 46138f729e user: dmestas tags: trunk
12:08
import-git takes a bare clone as its source check-in: dd7c4d4821 user: dmestas tags: trunk
10:53
import-git keeps one record per blob and an array of marks, and the cache warm-up writes its body to the cache file as it builds it instead of holding it in memory check-in: 1a5946ad99 user: dmestas tags: trunk
2026-10-29
21:21
import-git reads blobs on parallel readers, overlaps blob writes with the next commit, and warms the repository cache on the worker pool; worker memory is freed by the thread that allocated it check-in: cda137fdcc user: dmestas tags: trunk
09:07
import-git remembers each filename's zbits and skips parsing leaves when pairing delta bases check-in: fb5110b6e7 user: dmestas tags: trunk
08:42
import-git verifies on the worker pool: runs of whole delta trees sweep in parallel, check-ins and the repository view prefetch in bounded windows check-in: f291b36c4c user: dmestas tags: trunk
01:03
import-git runs delta search and compression on worker threads; --threads N writes the same bytes for every N check-in: 10c18c133a user: dmestas tags: trunk
2026-10-28
22:12
import-git: clear held-blob queue flags only when writing them fails check-in: 7800f5824f user: dmestas tags: trunk
21:52
import-git writes the published store in one pass: blobs wait for the commit that names their path, tree nodes delta against the node they replace, mirror candidates go to a side store, and the verifier checks a name tally instead of a raw generation check-in: 3842bce3fc user: dmestas tags: trunk
21:52
Horizon sweep: a generated merge that conflicts after criss-cross merges keeps the owner's later version check-in: 3d46cafc30 user: dmestas tags: trunk
19:20
import-git: verify reconstructs only the drop set from the raw generation, and pack leaves the published sweep to the verifier check-in: 304f89d989 user: dmestas tags: trunk
19:16
import-git: the tree editor keeps decoded nodes across commits, names each node once, and counts F cards without reparsing check-in: 7de9b7a047 user: dmestas tags: trunk
15:17
Horizon clones state a held root as a held entry; dst names each seed before running it and the soak keeps a failed run's stderr check-in: bc6778450a user: dmestas tags: trunk
01:08
import-git: stream the map into the verifier, one record at a time check-in: 10e65fa8e6 user: dmestas tags: trunk
2026-10-27
14:00
Avoid caching incomplete sparse classifications check-in: 51badc03a9 user: dmestas tags: trunk
01:19
Release 0.7.4 check-in: 77a57718ac user: dmestas tags: trunk, version-0.7.4
2026-10-26
16:17
Soak sweeps the horizon alone over 800 seeds past the DST's; dst takes a starting seed check-in: 39f58277b5 user: dmestas tags: trunk
16:10
Structural horizon clones state their held entries so a shrinking leaves-rule K keeps what was served check-in: 1b26775768 user: dmestas tags: trunk
14:12
import-git holds about 40% less per staged artifact: binary-keyed tables, inline store digests, provenance streamed to its file, and an import heap that reuses what it frees check-in: 2b13feb84d user: dmestas tags: trunk
13:47
Smoke: a path-cone clone of a stock fossil server commits and pushes back intact check-in: 26e4bd730c user: dmestas tags: trunk
00:18
Git export names a commit from synced history alone: the U login at the repository's synced email domain; an existing mirror keeps the rule it was built with check-in: f98a2ec97f user: dmestas tags: trunk
2026-10-25
21:08
Release 0.7.3 check-in: f18e3cc041 user: dmestas tags: trunk, version-0.7.3
20:34
Horizon sweep: the commit after a cut pull picks its file from the clone's cone, so a whole-tree listing no longer fetches withheld nodes on the twin alone check-in: 7bc0c50b0a user: dmestas tags: trunk
17:29
A push-only client asks for no content, as Fossil's does; the sync sweep expects a push to leave the client the phantoms it began with check-in: 81ccbcdc30 user: dmestas tags: trunk
16:01
import-git takes the history Git stores: damaged identities read as Git reads them, far dates clamped, other encodings converted, bytes that are not UTF-8 kept, unsafe paths left out and counted; a refusal names its record and rule; 0.7.3 notes check-in: 4900c770dd user: dmestas tags: trunk
14:18
import-git names a Git tag X as X and a branch by its branch alone; other refs become no tag; --into renames an older store's namespaced tags once check-in: 1b1c5d8430 user: dmestas tags: trunk
2026-10-24
18:49
A seed is never dated earlier than the latest D its origin has minted, so a shunned tag never fails a clone's date floor check-in: 39546186f4 user: dmestas tags: trunk
15:31
Release 0.7.2 check-in: 1dcb2d4a29 user: dmestas tags: trunk, version-0.7.2
14:51
import-git: a merged run no ref reaches takes the branch its merge names, closed when that branch is gone; a deleted head's tip is closed check-in: e2e4f17f48 user: dmestas tags: trunk
14:03
A seed is dated at the latest tag event in the repository, so a cancel or a reopened branch never fails a clone's date floor check-in: caeef421ee user: dmestas tags: trunk
13:39
zit info shows a horizon clone's horizon and history URL; a dropped seed is not asked for again check-in: 3555ad55ae user: dmestas tags: trunk
13:05
A received seed is never stored; the draft states the receive rule; 0.7.2 notes check-in: 9df0c63ccb user: dmestas tags: trunk
13:05
Harness: the round trip stops the server it started; smoke retries a server start on a fresh port check-in: d4572a038b user: dmestas tags: trunk
11:32
Smoke: compare horizon fallback verifies without the log length, which depends on arrival order check-in: 1c4cd7a165 user: dmestas tags: trunk, version-0.7.1
10:41
Release 0.7.1 check-in: 00f15e2eff user: dmestas tags: trunk
04:12
Horizons by name and depth; a labelled, bound seed an origin refuses on push; serve --horizon-url; 0.7.1 notes check-in: 236b7b4285 user: dmestas tags: trunk
2026-10-23
21:21
Docs: the command reference covers horizons and cones; llms.txt and a fast-clone guide for CI and agents check-in: d2b3e6c376 user: dmestas tags: trunk
19:55
Release 0.7.0 check-in: e723f5c4e2 user: dmestas tags: trunk, version-0.7.0
19:43
Tests: iterate the horizon refusal's work dir as a listable dir; the pack OOM walk refuses in-place growth check-in: 5413dfc01a user: dmestas tags: trunk
19:01
Merge horizon-rfc: horizon clones, the Fossil horizon draft, streaming cone persist check-in: d00faba684 user: dmestas tags: trunk
18:43
Path cones: skip the slot walk when every node is held; a streamed clone drops the out-of-cone bases an older origin sends leaf check-in: 8e906fdba2 user: dmestas tags: horizon-rfc
05:27
Merge trunk 0.6.6: path-cone index, stacked merges, shun and pack on bare stores, sterilized Git fixtures, --use-author, forum edit check-in: ce16e4c1ca user: dmestas tags: horizon-rfc
02:32
Release 0.6.6 check-in: b71756ae9f user: dmestas tags: trunk, version-0.6.6