nodemap: test that an outdated nodemap can catch up
authorPierre-Yves David <pierre-yves.david@octobus.net>
Thu, 27 Feb 2020 17:08:59 +0100
changeset 44495 1376cb1c8e34
parent 44494 283fd803afa5
child 44496 897f0ce4b484
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
tests/test-persistent-nodemap.t
--- 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