Patchwork D8183: nodemap: test that an outdated nodemap can catch up

login
register
mail settings
Submitter phabricator
Date Feb. 28, 2020, 6:54 p.m.
Message ID <differential-rev-PHID-DREV-zpil5j5khn6r647qzmie-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/45391/
State Superseded
Headers show

Comments

phabricator - Feb. 28, 2020, 6:54 p.m.
marmoute created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  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.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D8183

AFFECTED FILES
  tests/test-persistent-nodemap.t

CHANGE DETAILS




To: marmoute, #hg-reviewers
Cc: mercurial-devel
phabricator - March 11, 2020, 12:53 a.m.
marmoute added a comment.


  This got cherry picked before the other patches that implement more of the nodemap in rust. As a result `test-persistent-nodemap.t` breaks.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D8183/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D8183

To: marmoute, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/tests/test-persistent-nodemap.t b/tests/test-persistent-nodemap.t
--- a/tests/test-persistent-nodemap.t
+++ b/tests/test-persistent-nodemap.t
@@ -190,3 +190,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