Skip to content
Snippets Groups Projects
Commit c69adc82e7f7 authored by Raphaël Gomès's avatar Raphaël Gomès
Browse files

rust-dirstate-v2: show `unused_bytes` counter is not reset on total rewrite

This was picked up by @aalekseyev when doing unrelated debugging.

The Rust implementation was never resetting this counter, so a brand new file
would carry over the old counter.

As I write this, my counter is a supposed 7389089 unused bytes for a total of
170978 bytes in the data file. Feel free to post your own high score.

Differential Revision: https://phab.mercurial-scm.org/D12593
parent 51262af89efe
No related merge requests found
......@@ -166,6 +166,25 @@
*1 (re)
$ dirstate_uuid_has_not_changed
Unused bytes counter is non-0 when appending
$ touch file
$ hg add file
$ current_uid=$(find_dirstate_uuid)
Trigger a rust/rhg run which updates the unused bytes value
$ hg st
M dir2/f
A file
$ dirstate_data_files | wc -l
*1 (re)
$ dirstate_uuid_has_not_changed
$ hg debugstate --docket | grep unused
number of unused bytes: 0 (no-rust no-rhg !)
number of unused bytes: [1-9]\d* (re) (rhg no-rust !)
number of unused bytes: [1-9]\d* (re) (rust no-rhg !)
number of unused bytes: [1-9]\d* (re) (rust rhg !)
Delete most of the dirstate to trigger a non-append
$ hg rm dir/a dir/b dir/c dir/d
$ dirstate_data_files | wc -l
......@@ -173,4 +192,12 @@
$ dirstate_uuid_has_not_changed also-if-python
[1]
Check that unused bytes counter is reset when creating a new docket
$ hg debugstate --docket | grep unused
number of unused bytes: 0 (no-rust !)
number of unused bytes: [1-9]\d* (re) (rust known-bad-output !)
#endif
$ cd ..
......@@ -176,2 +203,1 @@
$ cd ..
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment