changeset 44495:1376cb1c8e34

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
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 27 Feb 2020 17:08:59 +0100
parents 283fd803afa5
children 897f0ce4b484
files tests/test-persistent-nodemap.t
diffstat 1 files changed, 39 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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