tests/test-persistent-nodemap.t
changeset 44785 2c073d82fbfa
parent 44636 c70bcaf7927b
child 44786 640d5b3bd060
equal deleted inserted replaced
44784:83c97c0bd319 44785:2c073d82fbfa
     8   > [experimental]
     8   > [experimental]
     9   > exp-persistent-nodemap=yes
     9   > exp-persistent-nodemap=yes
    10   > [devel]
    10   > [devel]
    11   > persistent-nodemap=yes
    11   > persistent-nodemap=yes
    12   > EOF
    12   > EOF
    13   $ hg debugbuilddag .+5000
    13   $ hg debugbuilddag .+5000 --new-file
    14   $ hg debugnodemap --metadata
    14   $ hg debugnodemap --metadata
    15   uid: ???????????????? (glob)
    15   uid: ???????????????? (glob)
    16   tip-rev: 5000
    16   tip-rev: 5000
    17   tip-node: 06ddac466af534d365326c13c3879f97caca3cb1
    17   tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c
    18   data-length: 122880
    18   data-length: 121088
    19   data-unused: 0
    19   data-unused: 0
    20   data-unused: 0.000%
    20   data-unused: 0.000%
    21   $ f --size .hg/store/00changelog.n
    21   $ f --size .hg/store/00changelog.n
    22   .hg/store/00changelog.n: size=70
    22   .hg/store/00changelog.n: size=70
    23 
    23 
    29 
    29 
    30 
    30 
    31 #if rust
    31 #if rust
    32 
    32 
    33   $ f --sha256 .hg/store/00changelog-*.nd
    33   $ f --sha256 .hg/store/00changelog-*.nd
    34   .hg/store/00changelog-????????????????.nd: sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6 (glob)
    34   .hg/store/00changelog-????????????????.nd: sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd (glob)
    35   $ hg debugnodemap --dump-new | f --sha256 --size
    35   $ hg debugnodemap --dump-new | f --sha256 --size
    36   size=122880, sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
    36   size=121088, sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd
    37   $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
    37   $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
    38   size=122880, sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
    38   size=121088, sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd
    39   0000: 00 00 00 76 00 00 01 65 00 00 00 95 00 00 01 34 |...v...e.......4|
    39   0000: 00 00 00 91 00 00 00 20 00 00 00 bb 00 00 00 e7 |....... ........|
    40   0010: 00 00 00 19 00 00 01 69 00 00 00 ab 00 00 00 4b |.......i.......K|
    40   0010: 00 00 00 66 00 00 00 a1 00 00 01 13 00 00 01 22 |...f..........."|
    41   0020: 00 00 00 07 00 00 01 4c 00 00 00 f8 00 00 00 8f |.......L........|
    41   0020: 00 00 00 23 00 00 00 fc 00 00 00 ba 00 00 00 5e |...#...........^|
    42   0030: 00 00 00 c0 00 00 00 a7 00 00 00 89 00 00 01 46 |...............F|
    42   0030: 00 00 00 df 00 00 01 4e 00 00 01 65 00 00 00 ab |.......N...e....|
    43   0040: 00 00 00 92 00 00 01 bc 00 00 00 71 00 00 00 ac |...........q....|
    43   0040: 00 00 00 a9 00 00 00 95 00 00 00 73 00 00 00 38 |...........s...8|
    44   0050: 00 00 00 af 00 00 00 b4 00 00 00 34 00 00 01 ca |...........4....|
    44   0050: 00 00 00 cc 00 00 00 92 00 00 00 90 00 00 00 69 |...............i|
    45   0060: 00 00 00 23 00 00 01 45 00 00 00 2d 00 00 00 b2 |...#...E...-....|
    45   0060: 00 00 00 ec 00 00 00 8d 00 00 01 4f 00 00 00 12 |...........O....|
    46   0070: 00 00 00 56 00 00 01 0f 00 00 00 4e 00 00 02 4c |...V.......N...L|
    46   0070: 00 00 02 0c 00 00 00 77 00 00 00 9c 00 00 00 8f |.......w........|
    47   0080: 00 00 00 e7 00 00 00 cd 00 00 01 5b 00 00 00 78 |...........[...x|
    47   0080: 00 00 00 d5 00 00 00 6b 00 00 00 48 00 00 00 b3 |.......k...H....|
    48   0090: 00 00 00 e3 00 00 01 8e 00 00 00 4f 00 00 00 b1 |...........O....|
    48   0090: 00 00 00 e5 00 00 00 b5 00 00 00 8e 00 00 00 ad |................|
    49   00a0: 00 00 00 30 00 00 00 11 00 00 00 25 00 00 00 d2 |...0.......%....|
    49   00a0: 00 00 00 7b 00 00 00 7c 00 00 00 0b 00 00 00 2b |...{...|.......+|
    50   00b0: 00 00 00 ec 00 00 00 69 00 00 01 2b 00 00 01 2e |.......i...+....|
    50   00b0: 00 00 00 c6 00 00 00 1e 00 00 01 08 00 00 00 11 |................|
    51   00c0: 00 00 00 aa 00 00 00 15 00 00 00 3a 00 00 01 4e |...........:...N|
    51   00c0: 00 00 01 30 00 00 00 26 00 00 01 9c 00 00 00 35 |...0...&.......5|
    52   00d0: 00 00 00 4d 00 00 00 9d 00 00 00 8e 00 00 00 a4 |...M............|
    52   00d0: 00 00 00 b8 00 00 01 31 00 00 00 2c 00 00 00 55 |.......1...,...U|
    53   00e0: 00 00 00 c3 00 00 00 eb 00 00 00 29 00 00 00 ad |...........)....|
    53   00e0: 00 00 00 8a 00 00 00 9a 00 00 00 0c 00 00 01 1e |................|
    54   00f0: 00 00 01 3a 00 00 01 32 00 00 00 04 00 00 00 53 |...:...2.......S|
    54   00f0: 00 00 00 a4 00 00 00 83 00 00 00 c9 00 00 00 8c |................|
    55 
    55 
    56 
    56 
    57 #else
    57 #else
    58 
    58 
    59   $ f --sha256 .hg/store/00changelog-*.nd
    59   $ f --sha256 .hg/store/00changelog-*.nd
    60   .hg/store/00changelog-????????????????.nd: sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7 (glob)
    60   .hg/store/00changelog-????????????????.nd: sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79 (glob)
    61   $ hg debugnodemap --dump-new | f --sha256 --size
    61   $ hg debugnodemap --dump-new | f --sha256 --size
    62   size=122880, sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7
    62   size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79
    63   $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
    63   $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
    64   size=122880, sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7
    64   size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79
    65   0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    65   0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    66   0010: ff ff ff ff ff ff ff ff ff ff fa c2 ff ff ff ff |................|
    66   0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    67   0020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    67   0020: ff ff ff ff ff ff f5 06 ff ff ff ff ff ff f3 e7 |................|
    68   0030: ff ff ff ff ff ff ed b3 ff ff ff ff ff ff ff ff |................|
    68   0030: ff ff ef ca ff ff ff ff ff ff ff ff ff ff ff ff |................|
    69   0040: ff ff ff ff ff ff ee 34 00 00 00 00 ff ff ff ff |.......4........|
    69   0040: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    70   0050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    70   0050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ed 08 |................|
    71   0060: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    71   0060: ff ff ed 66 ff ff ff ff ff ff ff ff ff ff ff ff |...f............|
    72   0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    72   0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    73   0080: ff ff ff ff ff ff f8 50 ff ff ff ff ff ff ff ff |.......P........|
    73   0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    74   0090: ff ff ff ff ff ff ff ff ff ff ec c7 ff ff ff ff |................|
    74   0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f6 ed |................|
    75   00a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    75   00a0: ff ff ff ff ff ff fe 61 ff ff ff ff ff ff ff ff |.......a........|
    76   00b0: ff ff ff ff ff ff fa be ff ff f2 fc ff ff ff ff |................|
    76   00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    77   00c0: ff ff ff ff ff ff ef ea ff ff ff ff ff ff f9 17 |................|
    77   00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    78   00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    78   00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    79   00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    79   00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f1 02 |................|
    80   00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
    80   00f0: ff ff ff ff ff ff ed 1b ff ff ff ff ff ff ff ff |................|
    81 
    81 
    82 #endif
    82 #endif
    83 
    83 
    84   $ hg debugnodemap --check
    84   $ hg debugnodemap --check
    85   revision in index:   5001
    85   revision in index:   5001
    86   revision in nodemap: 5001
    86   revision in nodemap: 5001
    87 
    87 
    88 add a new commit
    88 add a new commit
    89 
    89 
    90   $ hg up
    90   $ hg up
    91   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
    91   5001 files updated, 0 files merged, 0 files removed, 0 files unresolved
    92   $ echo foo > foo
    92   $ echo foo > foo
    93   $ hg add foo
    93   $ hg add foo
    94   $ hg ci -m 'foo'
    94   $ hg ci -m 'foo'
    95 
    95 
    96 #if no-pure no-rust
    96 #if no-pure no-rust
    97   $ hg debugnodemap --metadata
    97   $ hg debugnodemap --metadata
    98   uid: ???????????????? (glob)
    98   uid: ???????????????? (glob)
    99   tip-rev: 5001
    99   tip-rev: 5001
   100   tip-node: 2dd9b5258caa46469ff07d4a3da1eb3529a51f49
   100   tip-node: 16395c3cf7e231394735e6b1717823ada303fb0c
   101   data-length: 122880
   101   data-length: 121088
   102   data-unused: 0
   102   data-unused: 0
   103   data-unused: 0.000%
   103   data-unused: 0.000%
   104 #else
   104 #else
   105   $ hg debugnodemap --metadata
   105   $ hg debugnodemap --metadata
   106   uid: ???????????????? (glob)
   106   uid: ???????????????? (glob)
   107   tip-rev: 5001
   107   tip-rev: 5001
   108   tip-node: 2dd9b5258caa46469ff07d4a3da1eb3529a51f49
   108   tip-node: 16395c3cf7e231394735e6b1717823ada303fb0c
   109   data-length: 123072
   109   data-length: 121344
   110   data-unused: 192
   110   data-unused: 256
   111   data-unused: 0.156%
   111   data-unused: 0.211%
   112 #endif
   112 #endif
   113 
   113 
   114   $ f --size .hg/store/00changelog.n
   114   $ f --size .hg/store/00changelog.n
   115   .hg/store/00changelog.n: size=70
   115   .hg/store/00changelog.n: size=70
   116 
   116 
   117 (The pure code use the debug code that perform incremental update, the C code reencode from scratch)
   117 (The pure code use the debug code that perform incremental update, the C code reencode from scratch)
   118 
   118 
   119 #if pure
   119 #if pure
   120   $ f --sha256 .hg/store/00changelog-*.nd --size
   120   $ f --sha256 .hg/store/00changelog-*.nd --size
   121   .hg/store/00changelog-????????????????.nd: size=123072, sha256=136472751566c8198ff09e306a7d2f9bd18bd32298d614752b73da4d6df23340 (glob)
   121   .hg/store/00changelog-????????????????.nd: size=121344, sha256=cce54c5da5bde3ad72a4938673ed4064c86231b9c64376b082b163fdb20f8f66 (glob)
   122 #endif
   122 #endif
   123 
   123 
   124 #if rust
   124 #if rust
   125   $ f --sha256 .hg/store/00changelog-*.nd --size
   125   $ f --sha256 .hg/store/00changelog-*.nd --size
   126   .hg/store/00changelog-????????????????.nd: size=123072, sha256=ccc8a43310ace13812fcc648683e259346754ef934c12dd238cf9b7fadfe9a4b (glob)
   126   .hg/store/00changelog-????????????????.nd: size=121344, sha256=952b042fcf614ceb37b542b1b723e04f18f83efe99bee4e0f5ccd232ef470e58 (glob)
   127 #endif
   127 #endif
   128 
   128 
   129 #if no-pure no-rust
   129 #if no-pure no-rust
   130   $ f --sha256 .hg/store/00changelog-*.nd --size
   130   $ f --sha256 .hg/store/00changelog-*.nd --size
   131   .hg/store/00changelog-????????????????.nd: size=122880, sha256=bfafebd751c4f6d116a76a37a1dee2a251747affe7efbcc4f4842ccc746d4db9 (glob)
   131   .hg/store/00changelog-????????????????.nd: size=121088, sha256=df7c06a035b96cb28c7287d349d603baef43240be7736fe34eea419a49702e17 (glob)
   132 #endif
   132 #endif
   133 
   133 
   134   $ hg debugnodemap --check
   134   $ hg debugnodemap --check
   135   revision in index:   5002
   135   revision in index:   5002
   136   revision in nodemap: 5002
   136   revision in nodemap: 5002
   152 
   152 
   153 #if pure
   153 #if pure
   154   $ hg debugnodemap --metadata
   154   $ hg debugnodemap --metadata
   155   uid: ???????????????? (glob)
   155   uid: ???????????????? (glob)
   156   tip-rev: 5002
   156   tip-rev: 5002
   157   tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
   157   tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
   158   data-length: 123328
   158   data-length: 121600
   159   data-unused: 384
   159   data-unused: 512
   160   data-unused: 0.311%
   160   data-unused: 0.421%
   161   $ f --sha256 .hg/store/00changelog-*.nd --size
   161   $ f --sha256 .hg/store/00changelog-*.nd --size
   162   .hg/store/00changelog-????????????????.nd: size=123328, sha256=10d26e9776b6596af0f89143a54eba8cc581e929c38242a02a7b0760698c6c70 (glob)
   162   .hg/store/00changelog-????????????????.nd: size=121600, sha256=def52503d049ccb823974af313a98a935319ba61f40f3aa06a8be4d35c215054 (glob)
   163 #endif
   163 #endif
   164 #if rust
   164 #if rust
   165   $ hg debugnodemap --metadata
   165   $ hg debugnodemap --metadata
   166   uid: ???????????????? (glob)
   166   uid: ???????????????? (glob)
   167   tip-rev: 5002
   167   tip-rev: 5002
   168   tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
   168   tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
   169   data-length: 123328
   169   data-length: 121600
   170   data-unused: 384
   170   data-unused: 512
   171   data-unused: 0.311%
   171   data-unused: 0.421%
   172   $ f --sha256 .hg/store/00changelog-*.nd --size
   172   $ f --sha256 .hg/store/00changelog-*.nd --size
   173   .hg/store/00changelog-????????????????.nd: size=123328, sha256=081eec9eb6708f2bf085d939b4c97bc0b6762bc8336bc4b93838f7fffa1516bf (glob)
   173   .hg/store/00changelog-????????????????.nd: size=121600, sha256=dacf5b5f1d4585fee7527d0e67cad5b1ba0930e6a0928f650f779aefb04ce3fb (glob)
   174 #endif
   174 #endif
   175 #if no-pure no-rust
   175 #if no-pure no-rust
   176   $ hg debugnodemap --metadata
   176   $ hg debugnodemap --metadata
   177   uid: ???????????????? (glob)
   177   uid: ???????????????? (glob)
   178   tip-rev: 5002
   178   tip-rev: 5002
   179   tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
   179   tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
   180   data-length: 122944
   180   data-length: 121088
   181   data-unused: 0
   181   data-unused: 0
   182   data-unused: 0.000%
   182   data-unused: 0.000%
   183   $ f --sha256 .hg/store/00changelog-*.nd --size
   183   $ f --sha256 .hg/store/00changelog-*.nd --size
   184   .hg/store/00changelog-????????????????.nd: size=122944, sha256=755976b22b64ab680401b45395953504e64e7fa8c31ac570f58dee21e15f9bc0 (glob)
   184   .hg/store/00changelog-????????????????.nd: size=121088, sha256=59fcede3e3cc587755916ceed29e3c33748cd1aa7d2f91828ac83e7979d935e8 (glob)
   185 #endif
   185 #endif
   186 
   186 
   187 Test force warming the cache
   187 Test force warming the cache
   188 
   188 
   189   $ rm .hg/store/00changelog.n
   189   $ rm .hg/store/00changelog.n
   191   $ hg debugupdatecache
   191   $ hg debugupdatecache
   192 #if pure
   192 #if pure
   193   $ hg debugnodemap --metadata
   193   $ hg debugnodemap --metadata
   194   uid: ???????????????? (glob)
   194   uid: ???????????????? (glob)
   195   tip-rev: 5002
   195   tip-rev: 5002
   196   tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
   196   tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
   197   data-length: 122944
   197   data-length: 121088
   198   data-unused: 0
   198   data-unused: 0
   199   data-unused: 0.000%
   199   data-unused: 0.000%
   200 #else
   200 #else
   201   $ hg debugnodemap --metadata
   201   $ hg debugnodemap --metadata
   202   uid: ???????????????? (glob)
   202   uid: ???????????????? (glob)
   203   tip-rev: 5002
   203   tip-rev: 5002
   204   tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
   204   tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
   205   data-length: 122944
   205   data-length: 121088
   206   data-unused: 0
   206   data-unused: 0
   207   data-unused: 0.000%
   207   data-unused: 0.000%
   208 #endif
   208 #endif
   209 
   209 
   210 Check out of sync nodemap
   210 Check out of sync nodemap
   229 If the nodemap is lagging behind, it can catch up fine
   229 If the nodemap is lagging behind, it can catch up fine
   230 
   230 
   231   $ hg debugnodemap --metadata
   231   $ hg debugnodemap --metadata
   232   uid: ???????????????? (glob)
   232   uid: ???????????????? (glob)
   233   tip-rev: 5003
   233   tip-rev: 5003
   234   tip-node: 5c049e9c4a4af159bdcd65dce1b6bf303a0da6cf
   234   tip-node: c9329770f979ade2d16912267c38ba5f82fd37b3
   235   data-length: 123200 (pure !)
   235   data-length: 121344 (pure !)
   236   data-length: 123200 (rust !)
   236   data-length: 121344 (rust !)
   237   data-length: 122944 (no-rust no-pure !)
   237   data-length: 121152 (no-rust no-pure !)
   238   data-unused: 256 (pure !)
   238   data-unused: 192 (pure !)
   239   data-unused: 256 (rust !)
   239   data-unused: 192 (rust !)
   240   data-unused: 0 (no-rust no-pure !)
   240   data-unused: 0 (no-rust no-pure !)
   241   data-unused: 0.208% (pure !)
   241   data-unused: 0.158% (pure !)
   242   data-unused: 0.208% (rust !)
   242   data-unused: 0.158% (rust !)
   243   data-unused: 0.000% (no-rust no-pure !)
   243   data-unused: 0.000% (no-rust no-pure !)
   244   $ cp -f ../tmp-copies/* .hg/store/
   244   $ cp -f ../tmp-copies/* .hg/store/
   245   $ hg debugnodemap --metadata
   245   $ hg debugnodemap --metadata
   246   uid: ???????????????? (glob)
   246   uid: ???????????????? (glob)
   247   tip-rev: 5002
   247   tip-rev: 5002
   248   tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
   248   tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
   249   data-length: 122944
   249   data-length: 121088
   250   data-unused: 0
   250   data-unused: 0
   251   data-unused: 0.000%
   251   data-unused: 0.000%
   252   $ hg log -r "$NODE" -T '{rev}\n'
   252   $ hg log -r "$NODE" -T '{rev}\n'
   253   5003
   253   5003
   254 
   254 
   258 If the nodemap is not gated behind a requirements, an unaware client can alter
   258 If the nodemap is not gated behind a requirements, an unaware client can alter
   259 the repository so the revlog used to generate the nodemap is not longer
   259 the repository so the revlog used to generate the nodemap is not longer
   260 compatible with the persistent nodemap. We need to detect that.
   260 compatible with the persistent nodemap. We need to detect that.
   261 
   261 
   262   $ hg up "$NODE~5"
   262   $ hg up "$NODE~5"
   263   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
   263   0 files updated, 0 files merged, 4 files removed, 0 files unresolved
   264   $ echo bar > babar
   264   $ echo bar > babar
   265   $ hg add babar
   265   $ hg add babar
   266   $ hg ci -m 'babar'
   266   $ hg ci -m 'babar'
   267   created new head
   267   created new head
   268   $ OTHERNODE=`hg log -r tip -T '{node}\n'`
   268   $ OTHERNODE=`hg log -r tip -T '{node}\n'`
   274 the nodemap should detect the changelog have been tampered with and recover.
   274 the nodemap should detect the changelog have been tampered with and recover.
   275 
   275 
   276   $ hg debugnodemap --metadata
   276   $ hg debugnodemap --metadata
   277   uid: ???????????????? (glob)
   277   uid: ???????????????? (glob)
   278   tip-rev: 5002
   278   tip-rev: 5002
   279   tip-node: 42bf3068c7ddfdfded53c4eb11d02266faeebfee
   279   tip-node: b355ef8adce0949b8bdf6afc72ca853740d65944
   280   data-length: 123456 (pure !)
   280   data-length: 121536 (pure !)
   281   data-length: 123008 (rust !)
   281   data-length: 121088 (rust !)
   282   data-length: 123008 (no-pure no-rust !)
   282   data-length: 121088 (no-pure no-rust !)
   283   data-unused: 448 (pure !)
   283   data-unused: 448 (pure !)
   284   data-unused: 0 (rust !)
   284   data-unused: 0 (rust !)
   285   data-unused: 0 (no-pure no-rust !)
   285   data-unused: 0 (no-pure no-rust !)
   286   data-unused: 0.000% (rust !)
   286   data-unused: 0.000% (rust !)
   287   data-unused: 0.363% (pure !)
   287   data-unused: 0.369% (pure !)
   288   data-unused: 0.000% (no-pure no-rust !)
   288   data-unused: 0.000% (no-pure no-rust !)
   289 
   289 
   290   $ cp -f ../tmp-copies/* .hg/store/
   290   $ cp -f ../tmp-copies/* .hg/store/
   291   $ hg debugnodemap --metadata
   291   $ hg debugnodemap --metadata
   292   uid: ???????????????? (glob)
   292   uid: ???????????????? (glob)
   293   tip-rev: 5002
   293   tip-rev: 5002
   294   tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
   294   tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
   295   data-length: 122944
   295   data-length: 121088
   296   data-unused: 0
   296   data-unused: 0
   297   data-unused: 0.000%
   297   data-unused: 0.000%
   298   $ hg log -r "$OTHERNODE" -T '{rev}\n'
   298   $ hg log -r "$OTHERNODE" -T '{rev}\n'
   299   5002
   299   5002
   300 
   300 
   307   $ hg add a
   307   $ hg add a
   308   $ hg ci -m a
   308   $ hg ci -m a
   309   $ hg debugnodemap --metadata
   309   $ hg debugnodemap --metadata
   310   uid: ???????????????? (glob)
   310   uid: ???????????????? (glob)
   311   tip-rev: 5003
   311   tip-rev: 5003
   312   tip-node: c91af76d172f1053cca41b83f7c2e4e514fe2bcf
   312   tip-node: a52c5079765b5865d97b993b303a18740113bbb2
   313   data-length: 123008
   313   data-length: 121088
   314   data-unused: 0
   314   data-unused: 0
   315   data-unused: 0.000%
   315   data-unused: 0.000%
   316   $ echo babar2 > babar
   316   $ echo babar2 > babar
   317   $ hg ci -m 'babar2' --config "hooks.pretxnclose.nodemap-test=hg debugnodemap --metadata"
   317   $ hg ci -m 'babar2' --config "hooks.pretxnclose.nodemap-test=hg debugnodemap --metadata"
   318   uid: ???????????????? (glob)
   318   uid: ???????????????? (glob)
   319   tip-rev: 5004
   319   tip-rev: 5004
   320   tip-node: ba87cd9559559e4b91b28cb140d003985315e031
   320   tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
   321   data-length: 123328 (pure !)
   321   data-length: 121280 (pure !)
   322   data-length: 123328 (rust !)
   322   data-length: 121280 (rust !)
   323   data-length: 123136 (no-pure no-rust !)
   323   data-length: 121088 (no-pure no-rust !)
   324   data-unused: 192 (pure !)
   324   data-unused: 192 (pure !)
   325   data-unused: 192 (rust !)
   325   data-unused: 192 (rust !)
   326   data-unused: 0 (no-pure no-rust !)
   326   data-unused: 0 (no-pure no-rust !)
   327   data-unused: 0.156% (pure !)
   327   data-unused: 0.158% (pure !)
   328   data-unused: 0.156% (rust !)
   328   data-unused: 0.158% (rust !)
   329   data-unused: 0.000% (no-pure no-rust !)
   329   data-unused: 0.000% (no-pure no-rust !)
   330   $ hg debugnodemap --metadata
   330   $ hg debugnodemap --metadata
   331   uid: ???????????????? (glob)
   331   uid: ???????????????? (glob)
   332   tip-rev: 5004
   332   tip-rev: 5004
   333   tip-node: ba87cd9559559e4b91b28cb140d003985315e031
   333   tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
   334   data-length: 123328 (pure !)
   334   data-length: 121280 (pure !)
   335   data-length: 123328 (rust !)
   335   data-length: 121280 (rust !)
   336   data-length: 123136 (no-pure no-rust !)
   336   data-length: 121088 (no-pure no-rust !)
   337   data-unused: 192 (pure !)
   337   data-unused: 192 (pure !)
   338   data-unused: 192 (rust !)
   338   data-unused: 192 (rust !)
   339   data-unused: 0 (no-pure no-rust !)
   339   data-unused: 0 (no-pure no-rust !)
   340   data-unused: 0.156% (pure !)
   340   data-unused: 0.158% (pure !)
   341   data-unused: 0.156% (rust !)
   341   data-unused: 0.158% (rust !)
   342   data-unused: 0.000% (no-pure no-rust !)
   342   data-unused: 0.000% (no-pure no-rust !)
   343 
   343 
   344 Another process does not see the pending nodemap content during run.
   344 Another process does not see the pending nodemap content during run.
   345 
   345 
   346   $ PATH=$RUNTESTDIR/testlib/:$PATH
   346   $ PATH=$RUNTESTDIR/testlib/:$PATH
   354   $ wait-on-file 20 sync-txn-pending && \
   354   $ wait-on-file 20 sync-txn-pending && \
   355   > hg debugnodemap --metadata && \
   355   > hg debugnodemap --metadata && \
   356   > wait-on-file 20 sync-txn-close sync-repo-read
   356   > wait-on-file 20 sync-txn-close sync-repo-read
   357   uid: ???????????????? (glob)
   357   uid: ???????????????? (glob)
   358   tip-rev: 5004
   358   tip-rev: 5004
   359   tip-node: ba87cd9559559e4b91b28cb140d003985315e031
   359   tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
   360   data-length: 123328 (pure !)
   360   data-length: 121280 (pure !)
   361   data-length: 123328 (rust !)
   361   data-length: 121280 (rust !)
   362   data-length: 123136 (no-pure no-rust !)
   362   data-length: 121088 (no-pure no-rust !)
   363   data-unused: 192 (pure !)
   363   data-unused: 192 (pure !)
   364   data-unused: 192 (rust !)
   364   data-unused: 192 (rust !)
   365   data-unused: 0 (no-pure no-rust !)
   365   data-unused: 0 (no-pure no-rust !)
   366   data-unused: 0.156% (pure !)
   366   data-unused: 0.158% (pure !)
   367   data-unused: 0.156% (rust !)
   367   data-unused: 0.158% (rust !)
   368   data-unused: 0.000% (no-pure no-rust !)
   368   data-unused: 0.000% (no-pure no-rust !)
   369   $ hg debugnodemap --metadata
   369   $ hg debugnodemap --metadata
   370   uid: ???????????????? (glob)
   370   uid: ???????????????? (glob)
   371   tip-rev: 5005
   371   tip-rev: 5005
   372   tip-node: bae4d45c759e30f1cb1a40e1382cf0e0414154db
   372   tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
   373   data-length: 123584 (pure !)
   373   data-length: 121536 (pure !)
   374   data-length: 123584 (rust !)
   374   data-length: 121536 (rust !)
   375   data-length: 123136 (no-pure no-rust !)
   375   data-length: 121088 (no-pure no-rust !)
   376   data-unused: 448 (pure !)
   376   data-unused: 448 (pure !)
   377   data-unused: 448 (rust !)
   377   data-unused: 448 (rust !)
   378   data-unused: 0 (no-pure no-rust !)
   378   data-unused: 0 (no-pure no-rust !)
   379   data-unused: 0.363% (pure !)
   379   data-unused: 0.369% (pure !)
   380   data-unused: 0.363% (rust !)
   380   data-unused: 0.369% (rust !)
   381   data-unused: 0.000% (no-pure no-rust !)
   381   data-unused: 0.000% (no-pure no-rust !)
   382 
   382 
   383   $ cat output.txt
   383   $ cat output.txt
   384 
   384 
   385 Check that a failing transaction will properly revert the data
   385 Check that a failing transaction will properly revert the data
   386 
   386 
   387   $ echo plakfe > a
   387   $ echo plakfe > a
   388   $ f --size --sha256 .hg/store/00changelog-*.nd
   388   $ f --size --sha256 .hg/store/00changelog-*.nd
   389   .hg/store/00changelog-????????????????.nd: size=123584, sha256=8c6cef6fd3d3fac291968793ee19a4be6d0b8375e9508bd5c7d4a8879e8df180 (glob) (pure !)
   389   .hg/store/00changelog-????????????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)
   390   .hg/store/00changelog-????????????????.nd: size=123584, sha256=eb9e9a4bcafdb5e1344bc8a0cbb3288b2106413b8efae6265fb8a7973d7e97f9 (glob) (rust !)
   390   .hg/store/00changelog-????????????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)
   391   .hg/store/00changelog-????????????????.nd: size=123136, sha256=4f504f5a834db3811ced50ab3e9e80bcae3581bb0f9b13a7a9f94b7fc34bcebe (glob) (no-pure no-rust !)
   391   .hg/store/00changelog-????????????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)
   392   $ hg ci -m a3 --config "extensions.abort=$RUNTESTDIR/testlib/crash_transaction_late.py"
   392   $ hg ci -m a3 --config "extensions.abort=$RUNTESTDIR/testlib/crash_transaction_late.py"
   393   transaction abort!
   393   transaction abort!
   394   rollback completed
   394   rollback completed
   395   abort: This is a late abort
   395   abort: This is a late abort
   396   [255]
   396   [255]
   397   $ hg debugnodemap --metadata
   397   $ hg debugnodemap --metadata
   398   uid: ???????????????? (glob)
   398   uid: ???????????????? (glob)
   399   tip-rev: 5005
   399   tip-rev: 5005
   400   tip-node: bae4d45c759e30f1cb1a40e1382cf0e0414154db
   400   tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
   401   data-length: 123584 (pure !)
   401   data-length: 121536 (pure !)
   402   data-length: 123584 (rust !)
   402   data-length: 121536 (rust !)
   403   data-length: 123136 (no-pure no-rust !)
   403   data-length: 121088 (no-pure no-rust !)
   404   data-unused: 448 (pure !)
   404   data-unused: 448 (pure !)
   405   data-unused: 448 (rust !)
   405   data-unused: 448 (rust !)
   406   data-unused: 0 (no-pure no-rust !)
   406   data-unused: 0 (no-pure no-rust !)
   407   data-unused: 0.363% (pure !)
   407   data-unused: 0.369% (pure !)
   408   data-unused: 0.363% (rust !)
   408   data-unused: 0.369% (rust !)
   409   data-unused: 0.000% (no-pure no-rust !)
   409   data-unused: 0.000% (no-pure no-rust !)
   410   $ f --size --sha256 .hg/store/00changelog-*.nd
   410   $ f --size --sha256 .hg/store/00changelog-*.nd
   411   .hg/store/00changelog-????????????????.nd: size=123584, sha256=8c6cef6fd3d3fac291968793ee19a4be6d0b8375e9508bd5c7d4a8879e8df180 (glob) (pure !)
   411   .hg/store/00changelog-????????????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)
   412   .hg/store/00changelog-????????????????.nd: size=123584, sha256=eb9e9a4bcafdb5e1344bc8a0cbb3288b2106413b8efae6265fb8a7973d7e97f9 (glob) (rust !)
   412   .hg/store/00changelog-????????????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)
   413   .hg/store/00changelog-????????????????.nd: size=123136, sha256=4f504f5a834db3811ced50ab3e9e80bcae3581bb0f9b13a7a9f94b7fc34bcebe (glob) (no-pure no-rust !)
   413   .hg/store/00changelog-????????????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)