Parents and children of check-in [22bdf84fd3]
|
2026-09-02
| ||
| 02:57 | 0.3.3: version bump and release notes check-in: 441d99370f user: dmestas tags: trunk, version-0.3.3 | |
| 01:32 |
annotate walks the file's versions, not the whole ancestry
Every ancestor cost a manifest read and a full-file line diff — ~36k of each on SQLite where ~400 touched the file. The cache records already say who changed PATH (their diff is against the primary parent, so unlisted means byte-equal there): untouched ancestors inherit the parent's content pointer, the engine copies the parent's origins on pointer-identity, and the LCS trims the common prefix/suffix before its O(n*m) table. Unfinishable on SQLite before; 0.5-1.2s typical, 57s for a 15k-line heavily-edited file (the multi-hunk quadratic middle remains — a real diff core is the named follow-up). Attribution of a repeated line between equally-valid origins can shift, as any LCS tiebreak may. zit#172 check-in: 22bdf84fd3 user: dmestas tags: trunk | |
|
2026-09-01
| ||
| 23:10 |
timeline reads no manifest for what the state answers; count the reads that remain
The default-format timeline inflated a manifest per row — the fetch condition still said 'a.format != .oneline' from when oneline was the default, so zit#170's medium default made every row read one for two strings the image now carries. 66.5s to 0.37s for the full SQLite timeline, output identical. Repository.manifest counts its reads (ZIT_MANIFEST_READS=1 reports on exit), and an e2e runs ten listings over two history sizes and requires identical counts — a per-row reader fails by construction, no timing, no constants. zit#172 check-in: 09fa1a7fb3 user: dmestas tags: trunk | |