nodemap: test that an outdated nodemap can catch up
If the persistent nodemap does not contains all revision that the index
contains, this is should be detected and dealt with. We add a test for this
case.
Differential Revision: https://phab.mercurial-scm.org/D8183
--- a/tests/test-persistent-nodemap.t Thu Feb 27 16:09:17 2020 +0100
+++ b/tests/test-persistent-nodemap.t Thu Feb 27 17:08:59 2020 +0100
@@ -144,3 +144,42 @@
data-length: 122944
data-unused: 0
#endif
+
+Check out of sync nodemap
+=========================
+
+First copy old data on the side.
+
+ $ mkdir ../tmp-copies
+ $ cp .hg/store/00changelog-????????????????.nd .hg/store/00changelog.n ../tmp-copies
+
+Nodemap lagging behind
+----------------------
+
+make a new commit
+
+ $ echo bar2 > bar
+ $ hg ci -m 'bar2'
+ $ NODE=`hg log -r tip -T '{node}\n'`
+ $ hg log -r "$NODE" -T '{rev}\n'
+ 5003
+
+If the nodemap is lagging behind, it can catch up fine
+
+ $ hg debugnodemap --metadata
+ uid: ???????????????? (glob)
+ tip-rev: 5003
+ data-length: 123200 (pure !)
+ data-length: 123200 (rust !)
+ data-length: 122944 (no-rust no-pure !)
+ data-unused: 256 (pure !)
+ data-unused: 256 (rust !)
+ data-unused: 0 (no-rust no-pure !)
+ $ cp -f ../tmp-copies/* .hg/store/
+ $ hg debugnodemap --metadata
+ uid: ???????????????? (glob)
+ tip-rev: 5002
+ data-length: 122944
+ data-unused: 0
+ $ hg log -r "$NODE" -T '{rev}\n'
+ 5003