D8164: rust-nodemap: automatically use the rust index for persistent nodemap

2020-03-11 Thread marmoute (Pierre-Yves David)
Closed by commit rHGe7fff9c3cdac: rust-nodemap: automatically use the rust 
index for persistent nodemap (authored by marmoute).
This revision was automatically updated to reflect the committed changes.
This revision was not accepted when it landed; it landed in state "Needs 
Review".

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8164?vs=20679=20701

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

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

AFFECTED FILES
  mercurial/revlog.py
  tests/test-persistent-nodemap.t

CHANGE DETAILS

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
@@ -2,7 +2,6 @@
 Test the persistent on-disk nodemap
 ===
 
-
   $ hg init test-repo
   $ cd test-repo
   $ cat << EOF >> .hg/hgrc
@@ -26,6 +25,35 @@
   $ hg log -r "$ANYNODE" --template '{rev}\n'
   5000
 
+
+#if rust
+
+  $ f --sha256 .hg/store/00changelog-*.nd
+  .hg/store/00changelog-.nd: 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6 (glob)
+  $ hg debugnodemap --dump-new | f --sha256 --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  : 00 00 00 76 00 00 01 65 00 00 00 95 00 00 01 34 |...v...e...4|
+  0010: 00 00 00 19 00 00 01 69 00 00 00 ab 00 00 00 4b |...i...K|
+  0020: 00 00 00 07 00 00 01 4c 00 00 00 f8 00 00 00 8f |...L|
+  0030: 00 00 00 c0 00 00 00 a7 00 00 00 89 00 00 01 46 |...F|
+  0040: 00 00 00 92 00 00 01 bc 00 00 00 71 00 00 00 ac |...q|
+  0050: 00 00 00 af 00 00 00 b4 00 00 00 34 00 00 01 ca |...4|
+  0060: 00 00 00 23 00 00 01 45 00 00 00 2d 00 00 00 b2 |...#...E...-|
+  0070: 00 00 00 56 00 00 01 0f 00 00 00 4e 00 00 02 4c |...V...N...L|
+  0080: 00 00 00 e7 00 00 00 cd 00 00 01 5b 00 00 00 78 |...[...x|
+  0090: 00 00 00 e3 00 00 01 8e 00 00 00 4f 00 00 00 b1 |...O|
+  00a0: 00 00 00 30 00 00 00 11 00 00 00 25 00 00 00 d2 |...0...%|
+  00b0: 00 00 00 ec 00 00 00 69 00 00 01 2b 00 00 01 2e |...i...+|
+  00c0: 00 00 00 aa 00 00 00 15 00 00 00 3a 00 00 01 4e |...:...N|
+  00d0: 00 00 00 4d 00 00 00 9d 00 00 00 8e 00 00 00 a4 |...M|
+  00e0: 00 00 00 c3 00 00 00 eb 00 00 00 29 00 00 00 ad |...)|
+  00f0: 00 00 01 3a 00 00 01 32 00 00 00 04 00 00 00 53 |...:...2...S|
+
+
+#else
+
   $ f --sha256 .hg/store/00changelog-*.nd
   .hg/store/00changelog-.nd: 
sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7 (glob)
   $ hg debugnodemap --dump-new | f --sha256 --size
@@ -48,6 +76,9 @@
   00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
+
+#endif
+
   $ hg debugnodemap --check
   revision in index:   5001
   revision in nodemap: 5001
@@ -60,19 +91,20 @@
   $ hg add foo
   $ hg ci -m 'foo'
 
-#if pure
+#if no-pure no-rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5001
+  data-length: 122880
+  data-unused: 0
+#else
   $ hg debugnodemap --metadata
   uid:  (glob)
   tip-rev: 5001
   data-length: 123072
   data-unused: 192
-#else
-  $ hg debugnodemap --metadata
-  uid:  (glob)
-  tip-rev: 5001
-  data-length: 122880
-  data-unused: 0
 #endif
+
   $ f --size .hg/store/00changelog.n
   .hg/store/00changelog.n: size=42
 
@@ -81,11 +113,16 @@
 #if pure
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123072, 
sha256=136472751566c8198ff09e306a7d2f9bd18bd32298d614752b73da4d6df23340 (glob)
+#endif
 
-#else
+#if rust
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123072, 
sha256=ccc8a43310ace13812fcc648683e259346754ef934c12dd238cf9b7fadfe9a4b (glob)
+#endif
+
+#if no-pure no-rust
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=122880, 
sha256=bfafebd751c4f6d116a76a37a1dee2a251747affe7efbcc4f4842ccc746d4db9 (glob)
-
 #endif
 
   $ hg debugnodemap --check
@@ -115,8 +152,17 @@
   data-unused: 384
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123328, 
sha256=10d26e9776b6596af0f89143a54eba8cc581e929c38242a02a7b0760698c6c70 (glob)
-
-#else
+#endif
+#if rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5002
+  data-length: 123328
+  data-unused: 384
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  

D8164: rust-nodemap: automatically use the rust index for persistent nodemap

2020-03-10 Thread marmoute (Pierre-Yves David)
marmoute added a comment.
marmoute updated this revision to Diff 20679.


  rebase above latest default up to landed-D8182

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8164?vs=20662=20679

BRANCH
  default

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

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

AFFECTED FILES
  mercurial/revlog.py
  tests/test-persistent-nodemap.t

CHANGE DETAILS

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
@@ -2,7 +2,6 @@
 Test the persistent on-disk nodemap
 ===
 
-
   $ hg init test-repo
   $ cd test-repo
   $ cat << EOF >> .hg/hgrc
@@ -26,6 +25,35 @@
   $ hg log -r "$ANYNODE" --template '{rev}\n'
   5000
 
+
+#if rust
+
+  $ f --sha256 .hg/store/00changelog-*.nd
+  .hg/store/00changelog-.nd: 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6 (glob)
+  $ hg debugnodemap --dump-new | f --sha256 --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  : 00 00 00 76 00 00 01 65 00 00 00 95 00 00 01 34 |...v...e...4|
+  0010: 00 00 00 19 00 00 01 69 00 00 00 ab 00 00 00 4b |...i...K|
+  0020: 00 00 00 07 00 00 01 4c 00 00 00 f8 00 00 00 8f |...L|
+  0030: 00 00 00 c0 00 00 00 a7 00 00 00 89 00 00 01 46 |...F|
+  0040: 00 00 00 92 00 00 01 bc 00 00 00 71 00 00 00 ac |...q|
+  0050: 00 00 00 af 00 00 00 b4 00 00 00 34 00 00 01 ca |...4|
+  0060: 00 00 00 23 00 00 01 45 00 00 00 2d 00 00 00 b2 |...#...E...-|
+  0070: 00 00 00 56 00 00 01 0f 00 00 00 4e 00 00 02 4c |...V...N...L|
+  0080: 00 00 00 e7 00 00 00 cd 00 00 01 5b 00 00 00 78 |...[...x|
+  0090: 00 00 00 e3 00 00 01 8e 00 00 00 4f 00 00 00 b1 |...O|
+  00a0: 00 00 00 30 00 00 00 11 00 00 00 25 00 00 00 d2 |...0...%|
+  00b0: 00 00 00 ec 00 00 00 69 00 00 01 2b 00 00 01 2e |...i...+|
+  00c0: 00 00 00 aa 00 00 00 15 00 00 00 3a 00 00 01 4e |...:...N|
+  00d0: 00 00 00 4d 00 00 00 9d 00 00 00 8e 00 00 00 a4 |...M|
+  00e0: 00 00 00 c3 00 00 00 eb 00 00 00 29 00 00 00 ad |...)|
+  00f0: 00 00 01 3a 00 00 01 32 00 00 00 04 00 00 00 53 |...:...2...S|
+
+
+#else
+
   $ f --sha256 .hg/store/00changelog-*.nd
   .hg/store/00changelog-.nd: 
sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7 (glob)
   $ hg debugnodemap --dump-new | f --sha256 --size
@@ -48,6 +76,9 @@
   00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
+
+#endif
+
   $ hg debugnodemap --check
   revision in index:   5001
   revision in nodemap: 5001
@@ -60,19 +91,20 @@
   $ hg add foo
   $ hg ci -m 'foo'
 
-#if pure
+#if no-pure no-rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5001
+  data-length: 122880
+  data-unused: 0
+#else
   $ hg debugnodemap --metadata
   uid:  (glob)
   tip-rev: 5001
   data-length: 123072
   data-unused: 192
-#else
-  $ hg debugnodemap --metadata
-  uid:  (glob)
-  tip-rev: 5001
-  data-length: 122880
-  data-unused: 0
 #endif
+
   $ f --size .hg/store/00changelog.n
   .hg/store/00changelog.n: size=42
 
@@ -81,11 +113,16 @@
 #if pure
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123072, 
sha256=136472751566c8198ff09e306a7d2f9bd18bd32298d614752b73da4d6df23340 (glob)
+#endif
 
-#else
+#if rust
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123072, 
sha256=ccc8a43310ace13812fcc648683e259346754ef934c12dd238cf9b7fadfe9a4b (glob)
+#endif
+
+#if no-pure no-rust
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=122880, 
sha256=bfafebd751c4f6d116a76a37a1dee2a251747affe7efbcc4f4842ccc746d4db9 (glob)
-
 #endif
 
   $ hg debugnodemap --check
@@ -115,8 +152,17 @@
   data-unused: 384
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123328, 
sha256=10d26e9776b6596af0f89143a54eba8cc581e929c38242a02a7b0760698c6c70 (glob)
-
-#else
+#endif
+#if rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5002
+  data-length: 123328
+  data-unused: 384
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123328, 
sha256=081eec9eb6708f2bf085d939b4c97bc0b6762bc8336bc4b93838f7fffa1516bf (glob)
+#endif
+#if no-pure no-rust
   

D8164: rust-nodemap: automatically use the rust index for persistent nodemap

2020-03-10 Thread Raphaël Gomès
Alphare updated this revision to Diff 20662.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8164?vs=20579=20662

BRANCH
  default

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

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

AFFECTED FILES
  mercurial/revlog.py
  tests/test-persistent-nodemap.t

CHANGE DETAILS

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
@@ -2,7 +2,6 @@
 Test the persistent on-disk nodemap
 ===
 
-
   $ hg init test-repo
   $ cd test-repo
   $ cat << EOF >> .hg/hgrc
@@ -26,6 +25,35 @@
   $ hg log -r "$ANYNODE" --template '{rev}\n'
   5000
 
+
+#if rust
+
+  $ f --sha256 .hg/store/00changelog-*.nd
+  .hg/store/00changelog-.nd: 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6 (glob)
+  $ hg debugnodemap --dump-new | f --sha256 --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  : 00 00 00 76 00 00 01 65 00 00 00 95 00 00 01 34 |...v...e...4|
+  0010: 00 00 00 19 00 00 01 69 00 00 00 ab 00 00 00 4b |...i...K|
+  0020: 00 00 00 07 00 00 01 4c 00 00 00 f8 00 00 00 8f |...L|
+  0030: 00 00 00 c0 00 00 00 a7 00 00 00 89 00 00 01 46 |...F|
+  0040: 00 00 00 92 00 00 01 bc 00 00 00 71 00 00 00 ac |...q|
+  0050: 00 00 00 af 00 00 00 b4 00 00 00 34 00 00 01 ca |...4|
+  0060: 00 00 00 23 00 00 01 45 00 00 00 2d 00 00 00 b2 |...#...E...-|
+  0070: 00 00 00 56 00 00 01 0f 00 00 00 4e 00 00 02 4c |...V...N...L|
+  0080: 00 00 00 e7 00 00 00 cd 00 00 01 5b 00 00 00 78 |...[...x|
+  0090: 00 00 00 e3 00 00 01 8e 00 00 00 4f 00 00 00 b1 |...O|
+  00a0: 00 00 00 30 00 00 00 11 00 00 00 25 00 00 00 d2 |...0...%|
+  00b0: 00 00 00 ec 00 00 00 69 00 00 01 2b 00 00 01 2e |...i...+|
+  00c0: 00 00 00 aa 00 00 00 15 00 00 00 3a 00 00 01 4e |...:...N|
+  00d0: 00 00 00 4d 00 00 00 9d 00 00 00 8e 00 00 00 a4 |...M|
+  00e0: 00 00 00 c3 00 00 00 eb 00 00 00 29 00 00 00 ad |...)|
+  00f0: 00 00 01 3a 00 00 01 32 00 00 00 04 00 00 00 53 |...:...2...S|
+
+
+#else
+
   $ f --sha256 .hg/store/00changelog-*.nd
   .hg/store/00changelog-.nd: 
sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7 (glob)
   $ hg debugnodemap --dump-new | f --sha256 --size
@@ -48,6 +76,9 @@
   00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
+
+#endif
+
   $ hg debugnodemap --check
   revision in index:   5001
   revision in nodemap: 5001
@@ -60,19 +91,20 @@
   $ hg add foo
   $ hg ci -m 'foo'
 
-#if pure
+#if no-pure no-rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5001
+  data-length: 122880
+  data-unused: 0
+#else
   $ hg debugnodemap --metadata
   uid:  (glob)
   tip-rev: 5001
   data-length: 123072
   data-unused: 192
-#else
-  $ hg debugnodemap --metadata
-  uid:  (glob)
-  tip-rev: 5001
-  data-length: 122880
-  data-unused: 0
 #endif
+
   $ f --size .hg/store/00changelog.n
   .hg/store/00changelog.n: size=42
 
@@ -81,11 +113,16 @@
 #if pure
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123072, 
sha256=136472751566c8198ff09e306a7d2f9bd18bd32298d614752b73da4d6df23340 (glob)
+#endif
 
-#else
+#if rust
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123072, 
sha256=ccc8a43310ace13812fcc648683e259346754ef934c12dd238cf9b7fadfe9a4b (glob)
+#endif
+
+#if no-pure no-rust
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=122880, 
sha256=bfafebd751c4f6d116a76a37a1dee2a251747affe7efbcc4f4842ccc746d4db9 (glob)
-
 #endif
 
   $ hg debugnodemap --check
@@ -115,8 +152,17 @@
   data-unused: 384
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123328, 
sha256=10d26e9776b6596af0f89143a54eba8cc581e929c38242a02a7b0760698c6c70 (glob)
-
-#else
+#endif
+#if rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5002
+  data-length: 123328
+  data-unused: 384
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123328, 
sha256=081eec9eb6708f2bf085d939b4c97bc0b6762bc8336bc4b93838f7fffa1516bf (glob)
+#endif
+#if no-pure no-rust
   $ hg debugnodemap --metadata
   uid:  (glob)
   tip-rev: 5002

D8164: rust-nodemap: automatically use the rust index for persistent nodemap

2020-03-06 Thread marmoute (Pierre-Yves David)
marmoute added a comment.
marmoute updated this revision to Diff 20579.


  eventless rebase past D8255 

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8164?vs=20383=20579

BRANCH
  default

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

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

AFFECTED FILES
  mercurial/revlog.py
  tests/test-persistent-nodemap.t

CHANGE DETAILS

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
@@ -2,7 +2,6 @@
 Test the persistent on-disk nodemap
 ===
 
-
   $ hg init test-repo
   $ cd test-repo
   $ cat << EOF >> .hg/hgrc
@@ -26,6 +25,35 @@
   $ hg log -r "$ANYNODE" --template '{rev}\n'
   5000
 
+
+#if rust
+
+  $ f --sha256 .hg/store/00changelog-*.nd
+  .hg/store/00changelog-.nd: 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6 (glob)
+  $ hg debugnodemap --dump-new | f --sha256 --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  : 00 00 00 76 00 00 01 65 00 00 00 95 00 00 01 34 |...v...e...4|
+  0010: 00 00 00 19 00 00 01 69 00 00 00 ab 00 00 00 4b |...i...K|
+  0020: 00 00 00 07 00 00 01 4c 00 00 00 f8 00 00 00 8f |...L|
+  0030: 00 00 00 c0 00 00 00 a7 00 00 00 89 00 00 01 46 |...F|
+  0040: 00 00 00 92 00 00 01 bc 00 00 00 71 00 00 00 ac |...q|
+  0050: 00 00 00 af 00 00 00 b4 00 00 00 34 00 00 01 ca |...4|
+  0060: 00 00 00 23 00 00 01 45 00 00 00 2d 00 00 00 b2 |...#...E...-|
+  0070: 00 00 00 56 00 00 01 0f 00 00 00 4e 00 00 02 4c |...V...N...L|
+  0080: 00 00 00 e7 00 00 00 cd 00 00 01 5b 00 00 00 78 |...[...x|
+  0090: 00 00 00 e3 00 00 01 8e 00 00 00 4f 00 00 00 b1 |...O|
+  00a0: 00 00 00 30 00 00 00 11 00 00 00 25 00 00 00 d2 |...0...%|
+  00b0: 00 00 00 ec 00 00 00 69 00 00 01 2b 00 00 01 2e |...i...+|
+  00c0: 00 00 00 aa 00 00 00 15 00 00 00 3a 00 00 01 4e |...:...N|
+  00d0: 00 00 00 4d 00 00 00 9d 00 00 00 8e 00 00 00 a4 |...M|
+  00e0: 00 00 00 c3 00 00 00 eb 00 00 00 29 00 00 00 ad |...)|
+  00f0: 00 00 01 3a 00 00 01 32 00 00 00 04 00 00 00 53 |...:...2...S|
+
+
+#else
+
   $ f --sha256 .hg/store/00changelog-*.nd
   .hg/store/00changelog-.nd: 
sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7 (glob)
   $ hg debugnodemap --dump-new | f --sha256 --size
@@ -48,6 +76,9 @@
   00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
+
+#endif
+
   $ hg debugnodemap --check
   revision in index:   5001
   revision in nodemap: 5001
@@ -60,19 +91,20 @@
   $ hg add foo
   $ hg ci -m 'foo'
 
-#if pure
+#if no-pure no-rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5001
+  data-length: 122880
+  data-unused: 0
+#else
   $ hg debugnodemap --metadata
   uid:  (glob)
   tip-rev: 5001
   data-length: 123072
   data-unused: 192
-#else
-  $ hg debugnodemap --metadata
-  uid:  (glob)
-  tip-rev: 5001
-  data-length: 122880
-  data-unused: 0
 #endif
+
   $ f --size .hg/store/00changelog.n
   .hg/store/00changelog.n: size=42
 
@@ -81,11 +113,16 @@
 #if pure
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123072, 
sha256=136472751566c8198ff09e306a7d2f9bd18bd32298d614752b73da4d6df23340 (glob)
+#endif
 
-#else
+#if rust
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123072, 
sha256=ccc8a43310ace13812fcc648683e259346754ef934c12dd238cf9b7fadfe9a4b (glob)
+#endif
+
+#if no-pure no-rust
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=122880, 
sha256=bfafebd751c4f6d116a76a37a1dee2a251747affe7efbcc4f4842ccc746d4db9 (glob)
-
 #endif
 
   $ hg debugnodemap --check
@@ -115,8 +152,17 @@
   data-unused: 384
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123328, 
sha256=10d26e9776b6596af0f89143a54eba8cc581e929c38242a02a7b0760698c6c70 (glob)
-
-#else
+#endif
+#if rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5002
+  data-length: 123328
+  data-unused: 384
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123328, 
sha256=081eec9eb6708f2bf085d939b4c97bc0b6762bc8336bc4b93838f7fffa1516bf (glob)
+#endif

D8164: rust-nodemap: automatically use the rust index for persistent nodemap

2020-02-28 Thread marmoute (Pierre-Yves David)
marmoute updated this revision to Diff 20383.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8164?vs=20356=20383

BRANCH
  default

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

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

AFFECTED FILES
  mercurial/revlog.py
  tests/test-persistent-nodemap.t

CHANGE DETAILS

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
@@ -2,7 +2,6 @@
 Test the persistent on-disk nodemap
 ===
 
-
   $ hg init test-repo
   $ cd test-repo
   $ cat << EOF >> .hg/hgrc
@@ -26,6 +25,35 @@
   $ hg log -r "$ANYNODE" --template '{rev}\n'
   5000
 
+
+#if rust
+
+  $ f --sha256 .hg/store/00changelog-*.nd
+  .hg/store/00changelog-.nd: 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6 (glob)
+  $ hg debugnodemap --dump-new | f --sha256 --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  : 00 00 00 76 00 00 01 65 00 00 00 95 00 00 01 34 |...v...e...4|
+  0010: 00 00 00 19 00 00 01 69 00 00 00 ab 00 00 00 4b |...i...K|
+  0020: 00 00 00 07 00 00 01 4c 00 00 00 f8 00 00 00 8f |...L|
+  0030: 00 00 00 c0 00 00 00 a7 00 00 00 89 00 00 01 46 |...F|
+  0040: 00 00 00 92 00 00 01 bc 00 00 00 71 00 00 00 ac |...q|
+  0050: 00 00 00 af 00 00 00 b4 00 00 00 34 00 00 01 ca |...4|
+  0060: 00 00 00 23 00 00 01 45 00 00 00 2d 00 00 00 b2 |...#...E...-|
+  0070: 00 00 00 56 00 00 01 0f 00 00 00 4e 00 00 02 4c |...V...N...L|
+  0080: 00 00 00 e7 00 00 00 cd 00 00 01 5b 00 00 00 78 |...[...x|
+  0090: 00 00 00 e3 00 00 01 8e 00 00 00 4f 00 00 00 b1 |...O|
+  00a0: 00 00 00 30 00 00 00 11 00 00 00 25 00 00 00 d2 |...0...%|
+  00b0: 00 00 00 ec 00 00 00 69 00 00 01 2b 00 00 01 2e |...i...+|
+  00c0: 00 00 00 aa 00 00 00 15 00 00 00 3a 00 00 01 4e |...:...N|
+  00d0: 00 00 00 4d 00 00 00 9d 00 00 00 8e 00 00 00 a4 |...M|
+  00e0: 00 00 00 c3 00 00 00 eb 00 00 00 29 00 00 00 ad |...)|
+  00f0: 00 00 01 3a 00 00 01 32 00 00 00 04 00 00 00 53 |...:...2...S|
+
+
+#else
+
   $ f --sha256 .hg/store/00changelog-*.nd
   .hg/store/00changelog-.nd: 
sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7 (glob)
   $ hg debugnodemap --dump-new | f --sha256 --size
@@ -48,6 +76,9 @@
   00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
+
+#endif
+
   $ hg debugnodemap --check
   revision in index:   5001
   revision in nodemap: 5001
@@ -60,19 +91,20 @@
   $ hg add foo
   $ hg ci -m 'foo'
 
-#if pure
+#if no-pure no-rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5001
+  data-length: 122880
+  data-unused: 0
+#else
   $ hg debugnodemap --metadata
   uid:  (glob)
   tip-rev: 5001
   data-length: 123072
   data-unused: 192
-#else
-  $ hg debugnodemap --metadata
-  uid:  (glob)
-  tip-rev: 5001
-  data-length: 122880
-  data-unused: 0
 #endif
+
   $ f --size .hg/store/00changelog.n
   .hg/store/00changelog.n: size=42
 
@@ -81,11 +113,16 @@
 #if pure
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123072, 
sha256=136472751566c8198ff09e306a7d2f9bd18bd32298d614752b73da4d6df23340 (glob)
+#endif
 
-#else
+#if rust
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123072, 
sha256=ccc8a43310ace13812fcc648683e259346754ef934c12dd238cf9b7fadfe9a4b (glob)
+#endif
+
+#if no-pure no-rust
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=122880, 
sha256=bfafebd751c4f6d116a76a37a1dee2a251747affe7efbcc4f4842ccc746d4db9 (glob)
-
 #endif
 
   $ hg debugnodemap --check
@@ -115,8 +152,17 @@
   data-unused: 384
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123328, 
sha256=10d26e9776b6596af0f89143a54eba8cc581e929c38242a02a7b0760698c6c70 (glob)
-
-#else
+#endif
+#if rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5002
+  data-length: 123328
+  data-unused: 384
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123328, 
sha256=081eec9eb6708f2bf085d939b4c97bc0b6762bc8336bc4b93838f7fffa1516bf (glob)
+#endif
+#if no-pure no-rust
   $ hg debugnodemap --metadata
   uid:  (glob)
   tip-rev: 

D8164: rust-nodemap: automatically use the rust index for persistent nodemap

2020-02-27 Thread Raphaël Gomès
Alphare updated this revision to Diff 20356.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8164?vs=20339=20356

BRANCH
  default

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

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

AFFECTED FILES
  mercurial/revlog.py
  tests/test-persistent-nodemap.t

CHANGE DETAILS

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
@@ -2,7 +2,6 @@
 Test the persistent on-disk nodemap
 ===
 
-
   $ hg init test-repo
   $ cd test-repo
   $ cat << EOF >> .hg/hgrc
@@ -19,6 +18,35 @@
   data-unused: 0
   $ f --size .hg/store/00changelog.n
   .hg/store/00changelog.n: size=42
+
+#if rust
+
+  $ f --sha256 .hg/store/00changelog-*.nd
+  .hg/store/00changelog-.nd: 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6 (glob)
+  $ hg debugnodemap --dump-new | f --sha256 --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  : 00 00 00 76 00 00 01 65 00 00 00 95 00 00 01 34 |...v...e...4|
+  0010: 00 00 00 19 00 00 01 69 00 00 00 ab 00 00 00 4b |...i...K|
+  0020: 00 00 00 07 00 00 01 4c 00 00 00 f8 00 00 00 8f |...L|
+  0030: 00 00 00 c0 00 00 00 a7 00 00 00 89 00 00 01 46 |...F|
+  0040: 00 00 00 92 00 00 01 bc 00 00 00 71 00 00 00 ac |...q|
+  0050: 00 00 00 af 00 00 00 b4 00 00 00 34 00 00 01 ca |...4|
+  0060: 00 00 00 23 00 00 01 45 00 00 00 2d 00 00 00 b2 |...#...E...-|
+  0070: 00 00 00 56 00 00 01 0f 00 00 00 4e 00 00 02 4c |...V...N...L|
+  0080: 00 00 00 e7 00 00 00 cd 00 00 01 5b 00 00 00 78 |...[...x|
+  0090: 00 00 00 e3 00 00 01 8e 00 00 00 4f 00 00 00 b1 |...O|
+  00a0: 00 00 00 30 00 00 00 11 00 00 00 25 00 00 00 d2 |...0...%|
+  00b0: 00 00 00 ec 00 00 00 69 00 00 01 2b 00 00 01 2e |...i...+|
+  00c0: 00 00 00 aa 00 00 00 15 00 00 00 3a 00 00 01 4e |...:...N|
+  00d0: 00 00 00 4d 00 00 00 9d 00 00 00 8e 00 00 00 a4 |...M|
+  00e0: 00 00 00 c3 00 00 00 eb 00 00 00 29 00 00 00 ad |...)|
+  00f0: 00 00 01 3a 00 00 01 32 00 00 00 04 00 00 00 53 |...:...2...S|
+
+
+#else
+
   $ f --sha256 .hg/store/00changelog-*.nd
   .hg/store/00changelog-.nd: 
sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7 (glob)
   $ hg debugnodemap --dump-new | f --sha256 --size
@@ -41,6 +69,9 @@
   00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
+
+#endif
+
   $ hg debugnodemap --check
   revision in index:   5001
   revision in nodemap: 5001
@@ -53,19 +84,20 @@
   $ hg add foo
   $ hg ci -m 'foo'
 
-#if pure
+#if no-pure no-rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5001
+  data-length: 122880
+  data-unused: 0
+#else
   $ hg debugnodemap --metadata
   uid:  (glob)
   tip-rev: 5001
   data-length: 123072
   data-unused: 192
-#else
-  $ hg debugnodemap --metadata
-  uid:  (glob)
-  tip-rev: 5001
-  data-length: 122880
-  data-unused: 0
 #endif
+
   $ f --size .hg/store/00changelog.n
   .hg/store/00changelog.n: size=42
 
@@ -74,11 +106,16 @@
 #if pure
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123072, 
sha256=136472751566c8198ff09e306a7d2f9bd18bd32298d614752b73da4d6df23340 (glob)
+#endif
 
-#else
+#if rust
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123072, 
sha256=ccc8a43310ace13812fcc648683e259346754ef934c12dd238cf9b7fadfe9a4b (glob)
+#endif
+
+#if no-pure no-rust
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=122880, 
sha256=bfafebd751c4f6d116a76a37a1dee2a251747affe7efbcc4f4842ccc746d4db9 (glob)
-
 #endif
 
   $ hg debugnodemap --check
@@ -108,8 +145,17 @@
   data-unused: 384
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123328, 
sha256=10d26e9776b6596af0f89143a54eba8cc581e929c38242a02a7b0760698c6c70 (glob)
-
-#else
+#endif
+#if rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5002
+  data-length: 123328
+  data-unused: 384
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123328, 
sha256=081eec9eb6708f2bf085d939b4c97bc0b6762bc8336bc4b93838f7fffa1516bf (glob)
+#endif
+#if no-pure no-rust
   $ hg debugnodemap --metadata
   uid: 

D8164: rust-nodemap: automatically use the rust index for persistent nodemap

2020-02-26 Thread Raphaël Gomès
Alphare created this revision.
Herald added a reviewer: indygreg.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  The persistent nodemap requires the rust index to be used to provides any 
gains.
  So we automatically enable it for revlog using the persistent nodemap. We keep
  it off for other revset because now that the rust revlog fully initialise the
  nodemap using it everywhere introduce a fairly significant regression (eg: hg
  diff moving from 0.8s to 2.3s on mozilla-try)

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  mercurial/revlog.py
  tests/test-persistent-nodemap.t

CHANGE DETAILS

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
@@ -2,7 +2,6 @@
 Test the persistent on-disk nodemap
 ===
 
-
   $ hg init test-repo
   $ cd test-repo
   $ cat << EOF >> .hg/hgrc
@@ -19,6 +18,35 @@
   data-unused: 0
   $ f --size .hg/store/00changelog.n
   .hg/store/00changelog.n: size=42
+
+#if rust
+
+  $ f --sha256 .hg/store/00changelog-*.nd
+  .hg/store/00changelog-.nd: 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6 (glob)
+  $ hg debugnodemap --dump-new | f --sha256 --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
+  size=122880, 
sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
+  : 00 00 00 76 00 00 01 65 00 00 00 95 00 00 01 34 |...v...e...4|
+  0010: 00 00 00 19 00 00 01 69 00 00 00 ab 00 00 00 4b |...i...K|
+  0020: 00 00 00 07 00 00 01 4c 00 00 00 f8 00 00 00 8f |...L|
+  0030: 00 00 00 c0 00 00 00 a7 00 00 00 89 00 00 01 46 |...F|
+  0040: 00 00 00 92 00 00 01 bc 00 00 00 71 00 00 00 ac |...q|
+  0050: 00 00 00 af 00 00 00 b4 00 00 00 34 00 00 01 ca |...4|
+  0060: 00 00 00 23 00 00 01 45 00 00 00 2d 00 00 00 b2 |...#...E...-|
+  0070: 00 00 00 56 00 00 01 0f 00 00 00 4e 00 00 02 4c |...V...N...L|
+  0080: 00 00 00 e7 00 00 00 cd 00 00 01 5b 00 00 00 78 |...[...x|
+  0090: 00 00 00 e3 00 00 01 8e 00 00 00 4f 00 00 00 b1 |...O|
+  00a0: 00 00 00 30 00 00 00 11 00 00 00 25 00 00 00 d2 |...0...%|
+  00b0: 00 00 00 ec 00 00 00 69 00 00 01 2b 00 00 01 2e |...i...+|
+  00c0: 00 00 00 aa 00 00 00 15 00 00 00 3a 00 00 01 4e |...:...N|
+  00d0: 00 00 00 4d 00 00 00 9d 00 00 00 8e 00 00 00 a4 |...M|
+  00e0: 00 00 00 c3 00 00 00 eb 00 00 00 29 00 00 00 ad |...)|
+  00f0: 00 00 01 3a 00 00 01 32 00 00 00 04 00 00 00 53 |...:...2...S|
+
+
+#else
+
   $ f --sha256 .hg/store/00changelog-*.nd
   .hg/store/00changelog-.nd: 
sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7 (glob)
   $ hg debugnodemap --dump-new | f --sha256 --size
@@ -41,6 +69,9 @@
   00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
   00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ||
+
+#endif
+
   $ hg debugnodemap --check
   revision in index:   5001
   revision in nodemap: 5001
@@ -53,19 +84,20 @@
   $ hg add foo
   $ hg ci -m 'foo'
 
-#if pure
+#if no-pure no-rust
+  $ hg debugnodemap --metadata
+  uid:  (glob)
+  tip-rev: 5001
+  data-length: 122880
+  data-unused: 0
+#else
   $ hg debugnodemap --metadata
   uid:  (glob)
   tip-rev: 5001
   data-length: 123072
   data-unused: 192
-#else
-  $ hg debugnodemap --metadata
-  uid:  (glob)
-  tip-rev: 5001
-  data-length: 122880
-  data-unused: 0
 #endif
+
   $ f --size .hg/store/00changelog.n
   .hg/store/00changelog.n: size=42
 
@@ -74,11 +106,16 @@
 #if pure
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123072, 
sha256=136472751566c8198ff09e306a7d2f9bd18bd32298d614752b73da4d6df23340 (glob)
+#endif
 
-#else
+#if rust
+  $ f --sha256 .hg/store/00changelog-*.nd --size
+  .hg/store/00changelog-.nd: size=123072, 
sha256=ccc8a43310ace13812fcc648683e259346754ef934c12dd238cf9b7fadfe9a4b (glob)
+#endif
+
+#if no-pure no-rust
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=122880, 
sha256=bfafebd751c4f6d116a76a37a1dee2a251747affe7efbcc4f4842ccc746d4db9 (glob)
-
 #endif
 
   $ hg debugnodemap --check
@@ -108,8 +145,17 @@
   data-unused: 384
   $ f --sha256 .hg/store/00changelog-*.nd --size
   .hg/store/00changelog-.nd: size=123328, 
sha256=10d26e9776b6596af0f89143a54eba8cc581e929c38242a02a7b0760698c6c70 (glob)
-
-#else
+#endif
+#if rust
+  $ hg debugnodemap --metadata
+  uid: