50 descendants and 50 ancestors of dd7c4d4821e340d7
|
2026-11-05
| ||
| 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 | |
| 02:31 | import-git stores tracked files that parse as Fossil artifacts sterilized, as fossil commit does, and export-git strips the marker; --use-author records the Git author; pack takes -R on a bare store check-in: 2dd81018af user: dmestas tags: trunk | |
| 02:30 | Horizon seed: a state with no tag rows mints no seed and is served at the content level; choosing C's cost report is tool guidance check-in: 5d618aaeb1 user: dmestas tags: horizon-rfc | |
| 02:15 | Horizon clones from a filtering origin persist round by round, then classify over the log; the batched local filter stays for an origin that did not filter check-in: db1ffa3ce2 user: dmestas tags: horizon-rfc | |
| 01:24 | merge: stack merges as fossil does; the base is fossil's pivot over the pending merges and the commit records every merged parent check-in: be53dcc13b user: dmestas tags: trunk | |
| 00:58 | Horizon: deepen refuses without a known common ancestor, merge-base queries carry secondaries, a structural store falls back to content against a peer that cannot serve it, and parents of held baselines are boundary hashes check-in: 24457c7dd6 user: dmestas tags: horizon-rfc | |
| 00:39 | shun: work on a bare store with -R, and --porcelain reports one action per hash check-in: d46238a0df user: dmestas tags: trunk | |
|
2026-10-22
| ||
| 23:32 | Smoke: drive fossil's web UI through fossil http --localauth; some 2.28 builds drop the Referer in test-http check-in: 0976b8cbac user: dmestas tags: trunk, version-0.6.5 | |
| 23:08 | Release 0.6.5 check-in: 56cca49927 user: dmestas tags: trunk | |
| 22:59 | Content horizon cones: the origin withholds the tree nodes no slot reaches, walking only new trees; a cone clone classifies and persists through a bounded window; verify skips the path tracker under a horizon check-in: 3a2df62515 user: dmestas tags: horizon-rfc | |