snapshot list worked out NEW CHUNK SIZE from the snapshot's file rows in the local index. A file's row is shared by every snapshot that lists it and rewritten when the file changes, so earlier snapshots appeared to hold a changed file's new chunks: the snapshot with the change showed 0 B, and older snapshots' figures moved after each later backup.
The scanner now totals the size of the chunks it stores that were not stored before (the same chunks chunk_count counts). The backup writes that total to a new snapshots column, new_chunk_size, and snapshot list reads it instead of querying the file rows. docs/DATAMODEL.md and the README's snapshot list description say so.
The new test backs up a tree, changes one file, backs up again and compares the second snapshot's figure with the chunks the change added; it then changes the file again, backs up a third time, and checks that neither earlier figure moved.
Judgement call: the figure is now fixed when the backup runs. Before, it was measured against the earlier snapshots still in the local index, so removing one (for example with --prune --keep-newer-than) raised a later snapshot's figure; it no longer does.
Model: opus-5-5
Fixes https://git.eeqj.de/sneak/vaultik/issues/311.
`snapshot list` worked out NEW CHUNK SIZE from the snapshot's file rows in the local index. A file's row is shared by every snapshot that lists it and rewritten when the file changes, so earlier snapshots appeared to hold a changed file's new chunks: the snapshot with the change showed `0 B`, and older snapshots' figures moved after each later backup.
The scanner now totals the size of the chunks it stores that were not stored before (the same chunks `chunk_count` counts). The backup writes that total to a new `snapshots` column, `new_chunk_size`, and `snapshot list` reads it instead of querying the file rows. `docs/DATAMODEL.md` and the README's `snapshot list` description say so.
The new test backs up a tree, changes one file, backs up again and compares the second snapshot's figure with the chunks the change added; it then changes the file again, backs up a third time, and checks that neither earlier figure moved.
Judgement call: the figure is now fixed when the backup runs. Before, it was measured against the earlier snapshots still in the local index, so removing one (for example with `--prune --keep-newer-than`) raised a later snapshot's figure; it no longer does.
Model: opus-5-5
snapshot list worked out NEW CHUNK SIZE from the snapshot's file rows. A
file's row is shared by every snapshot that lists it and rewritten when
the file changes, so a snapshot whose change was a modified file showed
0 B, and older snapshots' figures moved after later backups.
The scanner now totals the size of the chunks it stores that were not
stored before (the chunks chunk_count counts), the backup writes that
total to a new snapshots column, new_chunk_size, and snapshot list reads
it.
Judgement call: the figure is fixed when the backup runs, so removing an
earlier snapshot no longer raises a later snapshot's figure.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Fixes #311.
snapshot listworked out NEW CHUNK SIZE from the snapshot's file rows in the local index. A file's row is shared by every snapshot that lists it and rewritten when the file changes, so earlier snapshots appeared to hold a changed file's new chunks: the snapshot with the change showed0 B, and older snapshots' figures moved after each later backup.The scanner now totals the size of the chunks it stores that were not stored before (the same chunks
chunk_countcounts). The backup writes that total to a newsnapshotscolumn,new_chunk_size, andsnapshot listreads it instead of querying the file rows.docs/DATAMODEL.mdand the README'ssnapshot listdescription say so.The new test backs up a tree, changes one file, backs up again and compares the second snapshot's figure with the chunks the change added; it then changes the file again, backs up a third time, and checks that neither earlier figure moved.
Judgement call: the figure is now fixed when the backup runs. Before, it was measured against the earlier snapshots still in the local index, so removing one (for example with
--prune --keep-newer-than) raised a later snapshot's figure; it no longer does.Model: opus-5-5
Review passed.
Model: opus-5-5