tests/test-persistent-nodemap.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Thu, 01 Dec 2022 01:57:14 +0100
changeset 49820 0df2cff04291
parent 48793 6e559391f96e
child 50290 92734603e33e
permissions -rw-r--r--
path: pass `path` to `peer` in `hg bundle` We directly use the `path` object to build the `peer` object.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44350
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     1
===================================
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     2
Test the persistent on-disk nodemap
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
===================================
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     4
46884
cc3ad5c3af3b persistent-nodemap: enable the feature by default when using Rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46874
diff changeset
     5
47886
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
     6
  $ cat << EOF >> $HGRCPATH
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
     7
  > [format]
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
     8
  > use-share-safe=yes
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
     9
  > [extensions]
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
    10
  > share=
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
    11
  > EOF
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
    12
46884
cc3ad5c3af3b persistent-nodemap: enable the feature by default when using Rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46874
diff changeset
    13
#if no-rust
cc3ad5c3af3b persistent-nodemap: enable the feature by default when using Rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46874
diff changeset
    14
44868
b81486b609a3 nodemap: gate the feature behind a new requirement
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44866
diff changeset
    15
  $ cat << EOF >> $HGRCPATH
44870
d688a8d537b9 nodemap: move the main switch to the `format` section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44868
diff changeset
    16
  > [format]
d688a8d537b9 nodemap: move the main switch to the `format` section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44868
diff changeset
    17
  > use-persistent-nodemap=yes
44356
6f9e8e142cea nodemap: add a (python) index class for persistent nodemap testing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44355
diff changeset
    18
  > [devel]
6f9e8e142cea nodemap: add a (python) index class for persistent nodemap testing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44355
diff changeset
    19
  > persistent-nodemap=yes
44351
5962fd0d1045 nodemap: write nodemap data on disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44350
diff changeset
    20
  > EOF
46310
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    21
46884
cc3ad5c3af3b persistent-nodemap: enable the feature by default when using Rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46874
diff changeset
    22
#endif
cc3ad5c3af3b persistent-nodemap: enable the feature by default when using Rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46874
diff changeset
    23
46310
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    24
  $ hg init test-repo --config storage.revlog.persistent-nodemap.slow-path=allow
44868
b81486b609a3 nodemap: gate the feature behind a new requirement
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44866
diff changeset
    25
  $ cd test-repo
46310
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    26
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    27
Check handling of the default slow-path value
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    28
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    29
#if no-pure no-rust
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    30
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    31
  $ hg id
46311
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
    32
  abort: accessing `persistent-nodemap` repository without associated fast implementation.
46310
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    33
  (check `hg help config.format.use-persistent-nodemap` for details)
46311
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
    34
  [255]
46310
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    35
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    36
Unlock further check (we are here to test the feature)
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    37
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    38
  $ cat << EOF >> $HGRCPATH
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    39
  > [storage]
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    40
  > # to avoid spamming the test
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    41
  > revlog.persistent-nodemap.slow-path=allow
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    42
  > EOF
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    43
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    44
#endif
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    45
46352
3df00f905458 persistent-nodemap: add test case reproducing a Rust panic
Simon Sapin <simon.sapin@octobus.net>
parents: 46334
diff changeset
    46
#if rust
3df00f905458 persistent-nodemap: add test case reproducing a Rust panic
Simon Sapin <simon.sapin@octobus.net>
parents: 46334
diff changeset
    47
46353
7d0405e458a0 persistent-nodemap: Fix Rust declarations for Revlog_CAPI signatures
Simon Sapin <simon.sapin@octobus.net>
parents: 46352
diff changeset
    48
Regression test for a previous bug in Rust/C FFI for the `Revlog_CAPI` capsule:
7d0405e458a0 persistent-nodemap: Fix Rust declarations for Revlog_CAPI signatures
Simon Sapin <simon.sapin@octobus.net>
parents: 46352
diff changeset
    49
in places where `mercurial/cext/revlog.c` function signatures use `Py_ssize_t`
7d0405e458a0 persistent-nodemap: Fix Rust declarations for Revlog_CAPI signatures
Simon Sapin <simon.sapin@octobus.net>
parents: 46352
diff changeset
    50
(64 bits on Linux x86_64), corresponding declarations in `rust/hg-cpython/src/cindex.rs`
7d0405e458a0 persistent-nodemap: Fix Rust declarations for Revlog_CAPI signatures
Simon Sapin <simon.sapin@octobus.net>
parents: 46352
diff changeset
    51
incorrectly used `libc::c_int` (32 bits).
7d0405e458a0 persistent-nodemap: Fix Rust declarations for Revlog_CAPI signatures
Simon Sapin <simon.sapin@octobus.net>
parents: 46352
diff changeset
    52
As a result, -1 passed from Rust for the null revision became 4294967295 in C.
46352
3df00f905458 persistent-nodemap: add test case reproducing a Rust panic
Simon Sapin <simon.sapin@octobus.net>
parents: 46334
diff changeset
    53
46353
7d0405e458a0 persistent-nodemap: Fix Rust declarations for Revlog_CAPI signatures
Simon Sapin <simon.sapin@octobus.net>
parents: 46352
diff changeset
    54
  $ hg log -r 00000000
7d0405e458a0 persistent-nodemap: Fix Rust declarations for Revlog_CAPI signatures
Simon Sapin <simon.sapin@octobus.net>
parents: 46352
diff changeset
    55
  changeset:   -1:000000000000
7d0405e458a0 persistent-nodemap: Fix Rust declarations for Revlog_CAPI signatures
Simon Sapin <simon.sapin@octobus.net>
parents: 46352
diff changeset
    56
  tag:         tip
7d0405e458a0 persistent-nodemap: Fix Rust declarations for Revlog_CAPI signatures
Simon Sapin <simon.sapin@octobus.net>
parents: 46352
diff changeset
    57
  user:        
7d0405e458a0 persistent-nodemap: Fix Rust declarations for Revlog_CAPI signatures
Simon Sapin <simon.sapin@octobus.net>
parents: 46352
diff changeset
    58
  date:        Thu Jan 01 00:00:00 1970 +0000
7d0405e458a0 persistent-nodemap: Fix Rust declarations for Revlog_CAPI signatures
Simon Sapin <simon.sapin@octobus.net>
parents: 46352
diff changeset
    59
  
46352
3df00f905458 persistent-nodemap: add test case reproducing a Rust panic
Simon Sapin <simon.sapin@octobus.net>
parents: 46334
diff changeset
    60
3df00f905458 persistent-nodemap: add test case reproducing a Rust panic
Simon Sapin <simon.sapin@octobus.net>
parents: 46334
diff changeset
    61
#endif
3df00f905458 persistent-nodemap: add test case reproducing a Rust panic
Simon Sapin <simon.sapin@octobus.net>
parents: 46334
diff changeset
    62
46310
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    63
44876
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44873
diff changeset
    64
  $ hg debugformat
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44873
diff changeset
    65
  format-variant     repo
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44873
diff changeset
    66
  fncache:            yes
47328
a43d256c041a dirstate-v2: Add `hg debugupgraderepo` command support
Simon Sapin <simon.sapin@octobus.net>
parents: 47322
diff changeset
    67
  dirstate-v2:         no
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48790
diff changeset
    68
  tracked-hint:        no
44876
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44873
diff changeset
    69
  dotencode:          yes
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44873
diff changeset
    70
  generaldelta:       yes
47886
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
    71
  share-safe:         yes
44876
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44873
diff changeset
    72
  sparserevlog:       yes
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44873
diff changeset
    73
  persistent-nodemap: yes
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44873
diff changeset
    74
  copies-sdc:          no
46718
fd55a9eb1507 revlogv2: allow upgrading to v2
Raphaël Gomès <rgomes@octobus.net>
parents: 46576
diff changeset
    75
  revlog-v2:           no
47274
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47035
diff changeset
    76
  changelog-v2:        no
44876
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44873
diff changeset
    77
  plain-cl-delta:     yes
46874
84a93fa7ecfd revlog-compression: use zstd by default (if available)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46719
diff changeset
    78
  compression:        zlib (no-zstd !)
84a93fa7ecfd revlog-compression: use zstd by default (if available)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46719
diff changeset
    79
  compression:        zstd (zstd !)
44876
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44873
diff changeset
    80
  compression-level:  default
46310
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    81
  $ hg debugbuilddag .+5000 --new-file
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
    82
44368
6614b301ea58 nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44367
diff changeset
    83
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
    84
  uid: ???????? (glob)
44369
e41a164db7a9 nodemap: track the maximum revision tracked in the nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44368
diff changeset
    85
  tip-rev: 5000
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
    86
  tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
    87
  data-length: 121088
44370
8374b69aef75 nodemap: track the total and unused amount of data in the rawdata file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44369
diff changeset
    88
  data-unused: 0
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
    89
  data-unused: 0.000%
44354
2b72c4ff8ed1 nodemap: use an intermediate "docket" file to carry small metadata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44352
diff changeset
    90
  $ f --size .hg/store/00changelog.n
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
    91
  .hg/store/00changelog.n: size=62
44482
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44465
diff changeset
    92
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44465
diff changeset
    93
Simple lookup works
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44465
diff changeset
    94
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44465
diff changeset
    95
  $ ANYNODE=`hg log --template '{node|short}\n' --rev tip`
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44465
diff changeset
    96
  $ hg log -r "$ANYNODE" --template '{rev}\n'
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44465
diff changeset
    97
  5000
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44465
diff changeset
    98
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
    99
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   100
#if rust
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   101
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   102
  $ f --sha256 .hg/store/00changelog-*.nd
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   103
  .hg/store/00changelog-????????.nd: sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd (glob)
44863
640d5b3bd060 nodemap: also use persistent nodemap for manifest
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44862
diff changeset
   104
640d5b3bd060 nodemap: also use persistent nodemap for manifest
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44862
diff changeset
   105
  $ f --sha256 .hg/store/00manifest-*.nd
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   106
  .hg/store/00manifest-????????.nd: sha256=97117b1c064ea2f86664a124589e47db0e254e8d34739b5c5cc5bf31c9da2b51 (glob)
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   107
  $ hg debugnodemap --dump-new | f --sha256 --size
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   108
  size=121088, sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   109
  $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   110
  size=121088, sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   111
  0000: 00 00 00 91 00 00 00 20 00 00 00 bb 00 00 00 e7 |....... ........|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   112
  0010: 00 00 00 66 00 00 00 a1 00 00 01 13 00 00 01 22 |...f..........."|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   113
  0020: 00 00 00 23 00 00 00 fc 00 00 00 ba 00 00 00 5e |...#...........^|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   114
  0030: 00 00 00 df 00 00 01 4e 00 00 01 65 00 00 00 ab |.......N...e....|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   115
  0040: 00 00 00 a9 00 00 00 95 00 00 00 73 00 00 00 38 |...........s...8|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   116
  0050: 00 00 00 cc 00 00 00 92 00 00 00 90 00 00 00 69 |...............i|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   117
  0060: 00 00 00 ec 00 00 00 8d 00 00 01 4f 00 00 00 12 |...........O....|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   118
  0070: 00 00 02 0c 00 00 00 77 00 00 00 9c 00 00 00 8f |.......w........|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   119
  0080: 00 00 00 d5 00 00 00 6b 00 00 00 48 00 00 00 b3 |.......k...H....|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   120
  0090: 00 00 00 e5 00 00 00 b5 00 00 00 8e 00 00 00 ad |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   121
  00a0: 00 00 00 7b 00 00 00 7c 00 00 00 0b 00 00 00 2b |...{...|.......+|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   122
  00b0: 00 00 00 c6 00 00 00 1e 00 00 01 08 00 00 00 11 |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   123
  00c0: 00 00 01 30 00 00 00 26 00 00 01 9c 00 00 00 35 |...0...&.......5|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   124
  00d0: 00 00 00 b8 00 00 01 31 00 00 00 2c 00 00 00 55 |.......1...,...U|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   125
  00e0: 00 00 00 8a 00 00 00 9a 00 00 00 0c 00 00 01 1e |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   126
  00f0: 00 00 00 a4 00 00 00 83 00 00 00 c9 00 00 00 8c |................|
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   127
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   128
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   129
#else
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   130
44355
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44354
diff changeset
   131
  $ f --sha256 .hg/store/00changelog-*.nd
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   132
  .hg/store/00changelog-????????.nd: sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79 (glob)
44352
6c07480d6659 nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44351
diff changeset
   133
  $ hg debugnodemap --dump-new | f --sha256 --size
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   134
  size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79
44352
6c07480d6659 nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44351
diff changeset
   135
  $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   136
  size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79
44350
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   137
  0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   138
  0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   139
  0020: ff ff ff ff ff ff f5 06 ff ff ff ff ff ff f3 e7 |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   140
  0030: ff ff ef ca ff ff ff ff ff ff ff ff ff ff ff ff |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   141
  0040: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   142
  0050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ed 08 |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   143
  0060: ff ff ed 66 ff ff ff ff ff ff ff ff ff ff ff ff |...f............|
44350
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   144
  0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   145
  0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   146
  0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f6 ed |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   147
  00a0: ff ff ff ff ff ff fe 61 ff ff ff ff ff ff ff ff |.......a........|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   148
  00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   149
  00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
44350
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   150
  00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   151
  00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f1 02 |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   152
  00f0: ff ff ff ff ff ff ed 1b ff ff ff ff ff ff ff ff |................|
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   153
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   154
#endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   155
44361
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44356
diff changeset
   156
  $ hg debugnodemap --check
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44356
diff changeset
   157
  revision in index:   5001
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44356
diff changeset
   158
  revision in nodemap: 5001
44355
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44354
diff changeset
   159
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44354
diff changeset
   160
add a new commit
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44354
diff changeset
   161
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44354
diff changeset
   162
  $ hg up
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   163
  5001 files updated, 0 files merged, 0 files removed, 0 files unresolved
44355
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44354
diff changeset
   164
  $ echo foo > foo
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44354
diff changeset
   165
  $ hg add foo
44866
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44865
diff changeset
   166
46309
2c9c88879ab7 persistent-node: check the value of the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46306
diff changeset
   167
2c9c88879ab7 persistent-node: check the value of the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46306
diff changeset
   168
Check slow-path config value handling
2c9c88879ab7 persistent-node: check the value of the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46306
diff changeset
   169
-------------------------------------
2c9c88879ab7 persistent-node: check the value of the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46306
diff changeset
   170
46311
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   171
#if no-pure no-rust
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   172
46309
2c9c88879ab7 persistent-node: check the value of the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46306
diff changeset
   173
  $ hg id --config "storage.revlog.persistent-nodemap.slow-path=invalid-value"
2c9c88879ab7 persistent-node: check the value of the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46306
diff changeset
   174
  unknown value for config "storage.revlog.persistent-nodemap.slow-path": "invalid-value"
46311
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   175
  falling back to default value: abort
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   176
  abort: accessing `persistent-nodemap` repository without associated fast implementation.
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   177
  (check `hg help config.format.use-persistent-nodemap` for details)
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   178
  [255]
44866
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44865
diff changeset
   179
46310
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
   180
  $ hg log -r . --config "storage.revlog.persistent-nodemap.slow-path=warn"
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
   181
  warning: accessing `persistent-nodemap` repository without associated fast implementation.
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
   182
  (check `hg help config.format.use-persistent-nodemap` for details)
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
   183
  changeset:   5000:6b02b8c7b966
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
   184
  tag:         tip
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
   185
  user:        debugbuilddag
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
   186
  date:        Thu Jan 01 01:23:20 1970 +0000
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
   187
  summary:     r5000
fc2d5c0aed7f persistent-nodemap: add a "warn" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46309
diff changeset
   188
  
46311
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   189
  $ hg ci -m 'foo' --config "storage.revlog.persistent-nodemap.slow-path=abort"
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   190
  abort: accessing `persistent-nodemap` repository without associated fast implementation.
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   191
  (check `hg help config.format.use-persistent-nodemap` for details)
44866
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44865
diff changeset
   192
  [255]
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44865
diff changeset
   193
46311
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   194
#else
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   195
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   196
  $ hg id --config "storage.revlog.persistent-nodemap.slow-path=invalid-value"
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   197
  unknown value for config "storage.revlog.persistent-nodemap.slow-path": "invalid-value"
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   198
  falling back to default value: abort
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   199
  6b02b8c7b966+ tip
014ac7a32048 persistent-nodemap: add a "abort" option to the slow-path config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46310
diff changeset
   200
44866
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44865
diff changeset
   201
#endif
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44865
diff changeset
   202
44355
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44354
diff changeset
   203
  $ hg ci -m 'foo'
44370
8374b69aef75 nodemap: track the total and unused amount of data in the rawdata file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44369
diff changeset
   204
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   205
#if no-pure no-rust
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   206
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   207
  uid: ???????? (glob)
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   208
  tip-rev: 5001
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   209
  tip-node: 16395c3cf7e231394735e6b1717823ada303fb0c
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   210
  data-length: 121088
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   211
  data-unused: 0
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   212
  data-unused: 0.000%
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   213
#else
44368
6614b301ea58 nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44367
diff changeset
   214
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   215
  uid: ???????? (glob)
44369
e41a164db7a9 nodemap: track the maximum revision tracked in the nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44368
diff changeset
   216
  tip-rev: 5001
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   217
  tip-node: 16395c3cf7e231394735e6b1717823ada303fb0c
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   218
  data-length: 121344
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   219
  data-unused: 256
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   220
  data-unused: 0.211%
44370
8374b69aef75 nodemap: track the total and unused amount of data in the rawdata file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44369
diff changeset
   221
#endif
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   222
44355
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44354
diff changeset
   223
  $ f --size .hg/store/00changelog.n
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   224
  .hg/store/00changelog.n: size=62
44367
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44361
diff changeset
   225
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44361
diff changeset
   226
(The pure code use the debug code that perform incremental update, the C code reencode from scratch)
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44361
diff changeset
   227
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44361
diff changeset
   228
#if pure
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44361
diff changeset
   229
  $ f --sha256 .hg/store/00changelog-*.nd --size
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   230
  .hg/store/00changelog-????????.nd: size=121344, sha256=cce54c5da5bde3ad72a4938673ed4064c86231b9c64376b082b163fdb20f8f66 (glob)
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   231
#endif
44367
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44361
diff changeset
   232
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   233
#if rust
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   234
  $ f --sha256 .hg/store/00changelog-*.nd --size
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   235
  .hg/store/00changelog-????????.nd: size=121344, sha256=952b042fcf614ceb37b542b1b723e04f18f83efe99bee4e0f5ccd232ef470e58 (glob)
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   236
#endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   237
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   238
#if no-pure no-rust
44355
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44354
diff changeset
   239
  $ f --sha256 .hg/store/00changelog-*.nd --size
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   240
  .hg/store/00changelog-????????.nd: size=121088, sha256=df7c06a035b96cb28c7287d349d603baef43240be7736fe34eea419a49702e17 (glob)
44367
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44361
diff changeset
   241
#endif
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44361
diff changeset
   242
44361
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44356
diff changeset
   243
  $ hg debugnodemap --check
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44356
diff changeset
   244
  revision in index:   5002
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44356
diff changeset
   245
  revision in nodemap: 5002
44397
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   246
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   247
Test code path without mmap
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   248
---------------------------
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   249
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   250
  $ echo bar > bar
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   251
  $ hg add bar
46306
7d096e5a5b90 persistent-nodemap: rename the storage.revlog.nodemap.mmap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46253
diff changeset
   252
  $ hg ci -m 'bar' --config storage.revlog.persistent-nodemap.mmap=no
44397
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   253
46306
7d096e5a5b90 persistent-nodemap: rename the storage.revlog.nodemap.mmap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46253
diff changeset
   254
  $ hg debugnodemap --check --config storage.revlog.persistent-nodemap.mmap=yes
44397
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   255
  revision in index:   5003
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   256
  revision in nodemap: 5003
46306
7d096e5a5b90 persistent-nodemap: rename the storage.revlog.nodemap.mmap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46253
diff changeset
   257
  $ hg debugnodemap --check --config storage.revlog.persistent-nodemap.mmap=no
44397
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   258
  revision in index:   5003
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   259
  revision in nodemap: 5003
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   260
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   261
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   262
#if pure
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   263
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   264
  uid: ???????? (glob)
44397
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   265
  tip-rev: 5002
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   266
  tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   267
  data-length: 121600
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   268
  data-unused: 512
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   269
  data-unused: 0.421%
44397
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   270
  $ f --sha256 .hg/store/00changelog-*.nd --size
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   271
  .hg/store/00changelog-????????.nd: size=121600, sha256=def52503d049ccb823974af313a98a935319ba61f40f3aa06a8be4d35c215054 (glob)
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   272
#endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   273
#if rust
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   274
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   275
  uid: ???????? (glob)
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   276
  tip-rev: 5002
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   277
  tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   278
  data-length: 121600
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   279
  data-unused: 512
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   280
  data-unused: 0.421%
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   281
  $ f --sha256 .hg/store/00changelog-*.nd --size
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   282
  .hg/store/00changelog-????????.nd: size=121600, sha256=dacf5b5f1d4585fee7527d0e67cad5b1ba0930e6a0928f650f779aefb04ce3fb (glob)
44523
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   283
#endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44507
diff changeset
   284
#if no-pure no-rust
44397
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   285
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   286
  uid: ???????? (glob)
44397
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   287
  tip-rev: 5002
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   288
  tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   289
  data-length: 121088
44397
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   290
  data-unused: 0
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   291
  data-unused: 0.000%
44397
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   292
  $ f --sha256 .hg/store/00changelog-*.nd --size
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   293
  .hg/store/00changelog-????????.nd: size=121088, sha256=59fcede3e3cc587755916ceed29e3c33748cd1aa7d2f91828ac83e7979d935e8 (glob)
44397
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44370
diff changeset
   294
#endif
44465
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   295
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   296
Test force warming the cache
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   297
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   298
  $ rm .hg/store/00changelog.n
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   299
  $ hg debugnodemap --metadata
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   300
  $ hg debugupdatecache
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   301
#if pure
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   302
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   303
  uid: ???????? (glob)
44465
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   304
  tip-rev: 5002
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   305
  tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   306
  data-length: 121088
44465
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   307
  data-unused: 0
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   308
  data-unused: 0.000%
44465
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   309
#else
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   310
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   311
  uid: ???????? (glob)
44465
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   312
  tip-rev: 5002
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   313
  tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   314
  data-length: 121088
44465
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   315
  data-unused: 0
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   316
  data-unused: 0.000%
44465
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44397
diff changeset
   317
#endif
44507
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   318
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   319
Check out of sync nodemap
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   320
=========================
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   321
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   322
First copy old data on the side.
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   323
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   324
  $ mkdir ../tmp-copies
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   325
  $ cp .hg/store/00changelog-????????.nd .hg/store/00changelog.n ../tmp-copies
44507
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   326
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   327
Nodemap lagging behind
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   328
----------------------
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   329
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   330
make a new commit
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   331
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   332
  $ echo bar2 > bar
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   333
  $ hg ci -m 'bar2'
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   334
  $ NODE=`hg log -r tip -T '{node}\n'`
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   335
  $ hg log -r "$NODE" -T '{rev}\n'
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   336
  5003
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   337
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   338
If the nodemap is lagging behind, it can catch up fine
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   339
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   340
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   341
  uid: ???????? (glob)
44507
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   342
  tip-rev: 5003
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   343
  tip-node: c9329770f979ade2d16912267c38ba5f82fd37b3
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   344
  data-length: 121344 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   345
  data-length: 121344 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   346
  data-length: 121152 (no-rust no-pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   347
  data-unused: 192 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   348
  data-unused: 192 (rust !)
44507
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   349
  data-unused: 0 (no-rust no-pure !)
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   350
  data-unused: 0.158% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   351
  data-unused: 0.158% (rust !)
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   352
  data-unused: 0.000% (no-rust no-pure !)
44507
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   353
  $ cp -f ../tmp-copies/* .hg/store/
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   354
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   355
  uid: ???????? (glob)
44507
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   356
  tip-rev: 5002
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   357
  tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   358
  data-length: 121088
44507
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   359
  data-unused: 0
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   360
  data-unused: 0.000%
44507
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   361
  $ hg log -r "$NODE" -T '{rev}\n'
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44482
diff changeset
   362
  5003
44525
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   363
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   364
changelog altered
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   365
-----------------
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   366
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   367
If the nodemap is not gated behind a requirements, an unaware client can alter
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   368
the repository so the revlog used to generate the nodemap is not longer
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   369
compatible with the persistent nodemap. We need to detect that.
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   370
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   371
  $ hg up "$NODE~5"
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   372
  0 files updated, 0 files merged, 4 files removed, 0 files unresolved
44525
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   373
  $ echo bar > babar
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   374
  $ hg add babar
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   375
  $ hg ci -m 'babar'
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   376
  created new head
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   377
  $ OTHERNODE=`hg log -r tip -T '{node}\n'`
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   378
  $ hg log -r "$OTHERNODE" -T '{rev}\n'
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   379
  5004
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   380
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   381
  $ hg --config extensions.strip= strip --rev "$NODE~1" --no-backup
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   382
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   383
the nodemap should detect the changelog have been tampered with and recover.
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   384
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   385
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   386
  uid: ???????? (glob)
44525
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   387
  tip-rev: 5002
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   388
  tip-node: b355ef8adce0949b8bdf6afc72ca853740d65944
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   389
  data-length: 121536 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   390
  data-length: 121088 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   391
  data-length: 121088 (no-pure no-rust !)
44525
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   392
  data-unused: 448 (pure !)
44640
c70bcaf7927b nodemap: automatically "vacuum" the persistent nodemap when too sparse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44639
diff changeset
   393
  data-unused: 0 (rust !)
44525
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   394
  data-unused: 0 (no-pure no-rust !)
44640
c70bcaf7927b nodemap: automatically "vacuum" the persistent nodemap when too sparse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44639
diff changeset
   395
  data-unused: 0.000% (rust !)
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   396
  data-unused: 0.369% (pure !)
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   397
  data-unused: 0.000% (no-pure no-rust !)
44525
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   398
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   399
  $ cp -f ../tmp-copies/* .hg/store/
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   400
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   401
  uid: ???????? (glob)
44525
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   402
  tip-rev: 5002
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   403
  tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   404
  data-length: 121088
44525
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   405
  data-unused: 0
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   406
  data-unused: 0.000%
44525
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   407
  $ hg log -r "$OTHERNODE" -T '{rev}\n'
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44523
diff changeset
   408
  5002
44526
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   409
46321
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   410
missing data file
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   411
-----------------
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   412
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   413
  $ UUID=`hg debugnodemap --metadata| grep 'uid:' | \
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   414
  > sed 's/uid: //'`
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   415
  $ FILE=.hg/store/00changelog-"${UUID}".nd
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   416
  $ mv $FILE ../tmp-data-file
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   417
  $ cp .hg/store/00changelog.n ../tmp-docket
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   418
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   419
mercurial don't crash
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   420
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   421
  $ hg log -r .
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   422
  changeset:   5002:b355ef8adce0
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   423
  tag:         tip
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   424
  parent:      4998:d918ad6d18d3
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   425
  user:        test
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   426
  date:        Thu Jan 01 00:00:00 1970 +0000
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   427
  summary:     babar
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   428
  
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   429
  $ hg debugnodemap --metadata
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   430
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   431
  $ hg debugupdatecache
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   432
  $ hg debugnodemap --metadata
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   433
  uid: * (glob)
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   434
  tip-rev: 5002
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   435
  tip-node: b355ef8adce0949b8bdf6afc72ca853740d65944
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   436
  data-length: 121088
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   437
  data-unused: 0
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   438
  data-unused: 0.000%
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   439
  $ mv ../tmp-data-file $FILE
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   440
  $ mv ../tmp-docket .hg/store/00changelog.n
d32e7ed81f4f persistent-nodemap: catch the right exception on python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
   441
44526
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   442
Check transaction related property
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   443
==================================
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   444
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   445
An up to date nodemap should be available to shell hooks,
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   446
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   447
  $ echo dsljfl > a
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   448
  $ hg add a
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   449
  $ hg ci -m a
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   450
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   451
  uid: ???????? (glob)
44526
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   452
  tip-rev: 5003
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   453
  tip-node: a52c5079765b5865d97b993b303a18740113bbb2
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   454
  data-length: 121088
44526
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   455
  data-unused: 0
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   456
  data-unused: 0.000%
44526
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   457
  $ echo babar2 > babar
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   458
  $ hg ci -m 'babar2' --config "hooks.pretxnclose.nodemap-test=hg debugnodemap --metadata"
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   459
  uid: ???????? (glob)
44526
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   460
  tip-rev: 5004
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   461
  tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   462
  data-length: 121280 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   463
  data-length: 121280 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   464
  data-length: 121088 (no-pure no-rust !)
44526
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   465
  data-unused: 192 (pure !)
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   466
  data-unused: 192 (rust !)
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   467
  data-unused: 0 (no-pure no-rust !)
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   468
  data-unused: 0.158% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   469
  data-unused: 0.158% (rust !)
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   470
  data-unused: 0.000% (no-pure no-rust !)
44526
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   471
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   472
  uid: ???????? (glob)
44526
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   473
  tip-rev: 5004
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   474
  tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   475
  data-length: 121280 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   476
  data-length: 121280 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   477
  data-length: 121088 (no-pure no-rust !)
44526
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   478
  data-unused: 192 (pure !)
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   479
  data-unused: 192 (rust !)
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44525
diff changeset
   480
  data-unused: 0 (no-pure no-rust !)
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   481
  data-unused: 0.158% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   482
  data-unused: 0.158% (rust !)
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   483
  data-unused: 0.000% (no-pure no-rust !)
44637
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   484
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   485
Another process does not see the pending nodemap content during run.
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   486
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   487
  $ echo qpoasp > a
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   488
  $ hg ci -m a2 \
47035
9e3979a25bfe tests: stabilize test-persistent-nodemap.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 46990
diff changeset
   489
  > --config "hooks.pretxnclose=sh \"$RUNTESTDIR/testlib/wait-on-file\" 20 sync-repo-read sync-txn-pending" \
44637
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   490
  > --config "hooks.txnclose=touch sync-txn-close" > output.txt 2>&1 &
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   491
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   492
(read the repository while the commit transaction is pending)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   493
47035
9e3979a25bfe tests: stabilize test-persistent-nodemap.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 46990
diff changeset
   494
  $ sh "$RUNTESTDIR/testlib/wait-on-file" 20 sync-txn-pending && \
44637
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   495
  > hg debugnodemap --metadata && \
47035
9e3979a25bfe tests: stabilize test-persistent-nodemap.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 46990
diff changeset
   496
  > sh "$RUNTESTDIR/testlib/wait-on-file" 20 sync-txn-close sync-repo-read
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   497
  uid: ???????? (glob)
44637
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   498
  tip-rev: 5004
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   499
  tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   500
  data-length: 121280 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   501
  data-length: 121280 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   502
  data-length: 121088 (no-pure no-rust !)
44637
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   503
  data-unused: 192 (pure !)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   504
  data-unused: 192 (rust !)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   505
  data-unused: 0 (no-pure no-rust !)
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   506
  data-unused: 0.158% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   507
  data-unused: 0.158% (rust !)
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   508
  data-unused: 0.000% (no-pure no-rust !)
44637
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   509
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   510
  uid: ???????? (glob)
44637
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   511
  tip-rev: 5005
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   512
  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   513
  data-length: 121536 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   514
  data-length: 121536 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   515
  data-length: 121088 (no-pure no-rust !)
44637
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   516
  data-unused: 448 (pure !)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   517
  data-unused: 448 (rust !)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   518
  data-unused: 0 (no-pure no-rust !)
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   519
  data-unused: 0.369% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   520
  data-unused: 0.369% (rust !)
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   521
  data-unused: 0.000% (no-pure no-rust !)
44637
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   522
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   523
  $ cat output.txt
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44526
diff changeset
   524
44638
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   525
Check that a failing transaction will properly revert the data
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   526
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   527
  $ echo plakfe > a
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   528
  $ f --size --sha256 .hg/store/00changelog-*.nd
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   529
  .hg/store/00changelog-????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   530
  .hg/store/00changelog-????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   531
  .hg/store/00changelog-????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)
44638
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   532
  $ hg ci -m a3 --config "extensions.abort=$RUNTESTDIR/testlib/crash_transaction_late.py"
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   533
  transaction abort!
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   534
  rollback completed
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   535
  abort: This is a late abort
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   536
  [255]
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   537
  $ hg debugnodemap --metadata
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   538
  uid: ???????? (glob)
44638
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   539
  tip-rev: 5005
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   540
  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   541
  data-length: 121536 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   542
  data-length: 121536 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   543
  data-length: 121088 (no-pure no-rust !)
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   544
  data-unused: 448 (pure !)
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   545
  data-unused: 448 (rust !)
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   546
  data-unused: 0 (no-pure no-rust !)
44862
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   547
  data-unused: 0.369% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   548
  data-unused: 0.369% (rust !)
44639
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44638
diff changeset
   549
  data-unused: 0.000% (no-pure no-rust !)
44638
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44637
diff changeset
   550
  $ f --size --sha256 .hg/store/00changelog-*.nd
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   551
  .hg/store/00changelog-????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   552
  .hg/store/00changelog-????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
   553
  .hg/store/00changelog-????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)
44803
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   554
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   555
Check that removing content does not confuse the nodemap
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   556
--------------------------------------------------------
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   557
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   558
removing data with rollback
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   559
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   560
  $ echo aso > a
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   561
  $ hg ci -m a4
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   562
  $ hg rollback
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   563
  repository tip rolled back to revision 5005 (undo commit)
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   564
  working directory now based on revision 5005
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   565
  $ hg id -r .
44995
78cafd48b9b2 merge with stable
Augie Fackler <augie@google.com>
parents: 44900 44803
diff changeset
   566
  90d5d3ba2fc4 tip
44803
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   567
47883
b833f8cbe199 persistent-nodemap: fix a typo in a test comment
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47795
diff changeset
   568
removing data with strip
44803
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   569
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   570
  $ echo aso > a
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   571
  $ hg ci -m a4
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   572
  $ hg --config extensions.strip= strip -r . --no-backup
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   573
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44640
diff changeset
   574
  $ hg id -r . --traceback
44995
78cafd48b9b2 merge with stable
Augie Fackler <augie@google.com>
parents: 44900 44803
diff changeset
   575
  90d5d3ba2fc4 tip
78cafd48b9b2 merge with stable
Augie Fackler <augie@google.com>
parents: 44900 44803
diff changeset
   576
47887
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   577
(be a good citizen and regenerate the nodemap)
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   578
  $ hg debugupdatecaches
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   579
  $ hg debugnodemap --metadata
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   580
  uid: * (glob)
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   581
  tip-rev: 5005
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   582
  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   583
  data-length: 121088
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   584
  data-unused: 0
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   585
  data-unused: 0.000%
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   586
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   587
Check race condition when multiple process write new data to the repository
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   588
---------------------------------------------------------------------------
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   589
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   590
In this test, we check that two writers touching the repositories will not
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   591
overwrite each other data. This test is prompted by the existent of issue6554.
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   592
Where a writer ended up using and outdated docket to update the repository. See
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   593
the dedicated extension for details on the race windows and read/write schedule
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   594
necessary to end up in this situation: testlib/persistent-nodemap-race-ext.py
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   595
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   596
The issue was initially observed on a server with a high push trafic, but it
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   597
can be reproduced using a share and two commiting process which seems simpler.
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   598
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   599
The test is Rust only as the other implementation does not use the same
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   600
read/write patterns.
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   601
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   602
  $ cd ..
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   603
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   604
#if rust
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   605
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   606
  $ cp -R test-repo race-repo
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   607
  $ hg share race-repo ./other-wc --config format.use-share-safe=yes
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   608
  updating working directory
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   609
  5001 files updated, 0 files merged, 0 files removed, 0 files unresolved
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   610
  $ hg debugformat -R ./race-repo | egrep 'share-safe|persistent-nodemap'
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   611
  share-safe:         yes
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   612
  persistent-nodemap: yes
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   613
  $ hg debugformat -R ./other-wc/ | egrep 'share-safe|persistent-nodemap'
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   614
  share-safe:         yes
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   615
  persistent-nodemap: yes
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   616
  $ hg -R ./other-wc update 'min(head())'
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   617
  3 files updated, 0 files merged, 2 files removed, 0 files unresolved
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   618
  $ hg -R ./race-repo debugnodemap --metadata
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   619
  uid: 43c37dde
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   620
  tip-rev: 5005
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   621
  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   622
  data-length: 121088
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   623
  data-unused: 0
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   624
  data-unused: 0.000%
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   625
  $ hg -R ./race-repo log -G -r 'head()'
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   626
  @  changeset:   5005:90d5d3ba2fc4
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   627
  |  tag:         tip
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   628
  ~  user:        test
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   629
     date:        Thu Jan 01 00:00:00 1970 +0000
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   630
     summary:     a2
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   631
  
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   632
  o  changeset:   5001:16395c3cf7e2
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   633
  |  user:        test
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   634
  ~  date:        Thu Jan 01 00:00:00 1970 +0000
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   635
     summary:     foo
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   636
  
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   637
  $ hg -R ./other-wc log -G -r 'head()'
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   638
  o  changeset:   5005:90d5d3ba2fc4
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   639
  |  tag:         tip
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   640
  ~  user:        test
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   641
     date:        Thu Jan 01 00:00:00 1970 +0000
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   642
     summary:     a2
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   643
  
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   644
  @  changeset:   5001:16395c3cf7e2
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   645
  |  user:        test
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   646
  ~  date:        Thu Jan 01 00:00:00 1970 +0000
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   647
     summary:     foo
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   648
  
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   649
  $ echo left-side-race > race-repo/left-side-race
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   650
  $ hg -R ./race-repo/ add race-repo/left-side-race
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   651
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   652
  $ echo right-side-race > ./other-wc/right-side-race
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   653
  $ hg -R ./other-wc/ add ./other-wc/right-side-race
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   654
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   655
  $ mkdir sync-files
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   656
  $ mkdir outputs
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   657
  $ (
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   658
  >    hg -R ./race-repo/ commit -m left-side-commit \
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   659
  >    --config "extensions.race=${RUNTESTDIR}/testlib/persistent-nodemap-race-ext.py" \
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   660
  >    --config 'devel.nodemap-race.role=left';
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   661
  >    touch sync-files/left-done
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   662
  > ) > outputs/left.txt 2>&1 &
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   663
  $ (
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   664
  >    hg -R ./other-wc/ commit -m right-side-commit \
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   665
  >    --config "extensions.race=${RUNTESTDIR}/testlib/persistent-nodemap-race-ext.py" \
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   666
  >    --config 'devel.nodemap-race.role=right';
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   667
  >    touch sync-files/right-done
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   668
  > ) > outputs/right.txt 2>&1 &
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   669
  $ (
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   670
  >    hg -R ./race-repo/ check-nodemap-race \
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   671
  >    --config "extensions.race=${RUNTESTDIR}/testlib/persistent-nodemap-race-ext.py" \
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   672
  >    --config 'devel.nodemap-race.role=reader';
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   673
  >    touch sync-files/reader-done
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   674
  > ) > outputs/reader.txt 2>&1 &
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   675
  $ sh "$RUNTESTDIR"/testlib/wait-on-file 10 sync-files/left-done
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   676
  $ cat outputs/left.txt
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   677
  docket-details:
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   678
    uid:         43c37dde
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   679
    actual-tip:  5005
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   680
    tip-rev:     5005
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   681
    data-length: 121088
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   682
  nodemap-race: left side locked and ready to commit
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   683
  docket-details:
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   684
    uid:         43c37dde
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   685
    actual-tip:  5005
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   686
    tip-rev:     5005
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   687
    data-length: 121088
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   688
  finalized changelog write
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   689
  persisting changelog nodemap
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   690
    new data start at 121088
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   691
  persisted changelog nodemap
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   692
  docket-details:
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   693
    uid:         43c37dde
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   694
    actual-tip:  5006
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   695
    tip-rev:     5006
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   696
    data-length: 121280
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   697
  $ sh "$RUNTESTDIR"/testlib/wait-on-file 10 sync-files/right-done
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   698
  $ cat outputs/right.txt
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   699
  nodemap-race: right side start of the locking sequence
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   700
  nodemap-race: right side reading changelog
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   701
  nodemap-race: right side reading of changelog is done
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   702
  docket-details:
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   703
    uid:         43c37dde
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   704
    actual-tip:  5006
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   705
    tip-rev:     5005
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   706
    data-length: 121088
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   707
  nodemap-race: right side ready to wait for the lock
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   708
  nodemap-race: right side locked and ready to commit
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   709
  docket-details:
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   710
    uid:         43c37dde
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   711
    actual-tip:  5006
47888
c094e829e848 changelog: also monitor `00changelog.n` when applicable (issue6554)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47887
diff changeset
   712
    tip-rev:     5006
c094e829e848 changelog: also monitor `00changelog.n` when applicable (issue6554)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47887
diff changeset
   713
    data-length: 121280
47887
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   714
  right ready to write, waiting for reader
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   715
  right proceeding with writing its changelog index and nodemap
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   716
  finalized changelog write
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   717
  persisting changelog nodemap
47888
c094e829e848 changelog: also monitor `00changelog.n` when applicable (issue6554)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47887
diff changeset
   718
    new data start at 121280
47887
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   719
  persisted changelog nodemap
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   720
  docket-details:
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   721
    uid:         43c37dde
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   722
    actual-tip:  5007
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   723
    tip-rev:     5007
47888
c094e829e848 changelog: also monitor `00changelog.n` when applicable (issue6554)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47887
diff changeset
   724
    data-length: 121536
47887
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   725
  $ sh "$RUNTESTDIR"/testlib/wait-on-file 10 sync-files/reader-done
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   726
  $ cat outputs/reader.txt
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   727
  reader: reading changelog
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   728
  reader ready to read the changelog, waiting for right
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   729
  reader: nodemap docket read
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   730
  record-data-length: 121280
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   731
  actual-data-length: 121280
47888
c094e829e848 changelog: also monitor `00changelog.n` when applicable (issue6554)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47887
diff changeset
   732
  file-actual-length: 121536
47887
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   733
  reader: changelog read
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   734
  docket-details:
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   735
    uid:         43c37dde
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   736
    actual-tip:  5006
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   737
    tip-rev:     5006
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   738
    data-length: 121280
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   739
  tip-rev:  5006
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   740
  tip-node: 492901161367
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   741
  node-rev: 5006
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   742
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   743
  $ hg -R ./race-repo log -G -r 'head()'
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   744
  o  changeset:   5007:ac4a2abde241
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   745
  |  tag:         tip
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   746
  ~  parent:      5001:16395c3cf7e2
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   747
     user:        test
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   748
     date:        Thu Jan 01 00:00:00 1970 +0000
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   749
     summary:     right-side-commit
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   750
  
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   751
  @  changeset:   5006:492901161367
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   752
  |  user:        test
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   753
  ~  date:        Thu Jan 01 00:00:00 1970 +0000
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   754
     summary:     left-side-commit
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   755
  
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   756
  $ hg -R ./other-wc log -G -r 'head()'
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   757
  @  changeset:   5007:ac4a2abde241
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   758
  |  tag:         tip
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   759
  ~  parent:      5001:16395c3cf7e2
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   760
     user:        test
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   761
     date:        Thu Jan 01 00:00:00 1970 +0000
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   762
     summary:     right-side-commit
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   763
  
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   764
  o  changeset:   5006:492901161367
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   765
  |  user:        test
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   766
  ~  date:        Thu Jan 01 00:00:00 1970 +0000
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   767
     summary:     left-side-commit
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   768
  
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   769
#endif
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   770
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   771
Test upgrade / downgrade
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   772
========================
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   773
47887
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   774
  $ cd ./test-repo/
52018f8ef020 persistent-nodemap: introduce a test to highlight possible race
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47886
diff changeset
   775
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   776
downgrading
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   777
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   778
  $ cat << EOF >> .hg/hgrc
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   779
  > [format]
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   780
  > use-persistent-nodemap=no
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   781
  > EOF
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   782
  $ hg debugformat -v
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   783
  format-variant     repo config default
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   784
  fncache:            yes    yes     yes
47328
a43d256c041a dirstate-v2: Add `hg debugupgraderepo` command support
Simon Sapin <simon.sapin@octobus.net>
parents: 47322
diff changeset
   785
  dirstate-v2:         no     no      no
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48790
diff changeset
   786
  tracked-hint:        no     no      no
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   787
  dotencode:          yes    yes     yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   788
  generaldelta:       yes    yes     yes
48691
7ee07e1a25c0 share-safe: enable by default (BC)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48344
diff changeset
   789
  share-safe:         yes    yes     yes
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   790
  sparserevlog:       yes    yes     yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   791
  persistent-nodemap: yes     no      no
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   792
  copies-sdc:          no     no      no
46718
fd55a9eb1507 revlogv2: allow upgrading to v2
Raphaël Gomès <rgomes@octobus.net>
parents: 46576
diff changeset
   793
  revlog-v2:           no     no      no
47274
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47035
diff changeset
   794
  changelog-v2:        no     no      no
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   795
  plain-cl-delta:     yes    yes     yes
46874
84a93fa7ecfd revlog-compression: use zstd by default (if available)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46719
diff changeset
   796
  compression:        zlib   zlib    zlib (no-zstd !)
84a93fa7ecfd revlog-compression: use zstd by default (if available)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46719
diff changeset
   797
  compression:        zstd   zstd    zstd (zstd !)
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   798
  compression-level:  default default default
47884
ce01b97a93da persistent-nodemap: use quiet upgrade in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47883
diff changeset
   799
  $ hg debugupgraderepo --run --no-backup --quiet
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   800
  upgrade will perform the following actions:
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   801
  
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   802
  requirements
47886
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
   803
     preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-zstd no-dirstate-v2 !)
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
   804
     preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, share-safe, sparserevlog, store (zstd no-dirstate-v2 !)
48360
f7086f6173f8 dirstate-v2: rename the configuration to enable the format
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48344
diff changeset
   805
     preserved: dotencode, use-dirstate-v2, fncache, generaldelta, revlog-compression-zstd, revlogv1, share-safe, sparserevlog, store (zstd dirstate-v2 !)
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   806
     removed: persistent-nodemap
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   807
  
46039
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   808
  processed revlogs:
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   809
    - all-filelogs
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   810
    - changelog
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   811
    - manifest
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   812
  
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   813
  $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
46576
67b5fafd3a46 upgrade: speed up when we have only nodemap to downgrade
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46575
diff changeset
   814
  undo.backup.00changelog.n
67b5fafd3a46 upgrade: speed up when we have only nodemap to downgrade
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46575
diff changeset
   815
  undo.backup.00manifest.n
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   816
  $ hg debugnodemap --metadata
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   817
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   818
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   819
upgrading
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   820
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   821
  $ cat << EOF >> .hg/hgrc
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   822
  > [format]
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   823
  > use-persistent-nodemap=yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   824
  > EOF
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   825
  $ hg debugformat -v
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   826
  format-variant     repo config default
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   827
  fncache:            yes    yes     yes
47328
a43d256c041a dirstate-v2: Add `hg debugupgraderepo` command support
Simon Sapin <simon.sapin@octobus.net>
parents: 47322
diff changeset
   828
  dirstate-v2:         no     no      no
48793
6e559391f96e tracked-key: remove the dual write and rename to tracked-hint
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48790
diff changeset
   829
  tracked-hint:        no     no      no
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   830
  dotencode:          yes    yes     yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   831
  generaldelta:       yes    yes     yes
48691
7ee07e1a25c0 share-safe: enable by default (BC)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48344
diff changeset
   832
  share-safe:         yes    yes     yes
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   833
  sparserevlog:       yes    yes     yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   834
  persistent-nodemap:  no    yes      no
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   835
  copies-sdc:          no     no      no
46718
fd55a9eb1507 revlogv2: allow upgrading to v2
Raphaël Gomès <rgomes@octobus.net>
parents: 46576
diff changeset
   836
  revlog-v2:           no     no      no
47274
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47035
diff changeset
   837
  changelog-v2:        no     no      no
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   838
  plain-cl-delta:     yes    yes     yes
46874
84a93fa7ecfd revlog-compression: use zstd by default (if available)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46719
diff changeset
   839
  compression:        zlib   zlib    zlib (no-zstd !)
84a93fa7ecfd revlog-compression: use zstd by default (if available)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46719
diff changeset
   840
  compression:        zstd   zstd    zstd (zstd !)
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   841
  compression-level:  default default default
47884
ce01b97a93da persistent-nodemap: use quiet upgrade in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47883
diff changeset
   842
  $ hg debugupgraderepo --run --no-backup --quiet
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   843
  upgrade will perform the following actions:
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   844
  
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   845
  requirements
47886
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
   846
     preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-zstd no-dirstate-v2 !)
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
   847
     preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, share-safe, sparserevlog, store (zstd no-dirstate-v2 !)
48360
f7086f6173f8 dirstate-v2: rename the configuration to enable the format
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48344
diff changeset
   848
     preserved: dotencode, use-dirstate-v2, fncache, generaldelta, revlog-compression-zstd, revlogv1, share-safe, sparserevlog, store (zstd dirstate-v2 !)
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   849
     added: persistent-nodemap
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   850
  
46039
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   851
  processed revlogs:
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   852
    - all-filelogs
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   853
    - changelog
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   854
    - manifest
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   855
  
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   856
  $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   857
  00changelog-*.nd (glob)
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   858
  00changelog.n
46575
636853347e14 upgrade: write nodemap for manifests too
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46533
diff changeset
   859
  00manifest-*.nd (glob)
636853347e14 upgrade: write nodemap for manifests too
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46533
diff changeset
   860
  00manifest.n
46576
67b5fafd3a46 upgrade: speed up when we have only nodemap to downgrade
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46575
diff changeset
   861
  undo.backup.00changelog.n
67b5fafd3a46 upgrade: speed up when we have only nodemap to downgrade
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46575
diff changeset
   862
  undo.backup.00manifest.n
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   863
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   864
  $ hg debugnodemap --metadata
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   865
  uid: * (glob)
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   866
  tip-rev: 5005
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   867
  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   868
  data-length: 121088
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   869
  data-unused: 0
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   870
  data-unused: 0.000%
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   871
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   872
Running unrelated upgrade
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   873
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   874
  $ hg debugupgraderepo --run --no-backup --quiet --optimize re-delta-all
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   875
  upgrade will perform the following actions:
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   876
  
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   877
  requirements
47886
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
   878
     preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (no-zstd no-dirstate-v2 !)
016081cca1fb test: enable share-safe in test-persistent-nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47884
diff changeset
   879
     preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, revlogv1, share-safe, sparserevlog, store (zstd no-dirstate-v2 !)
48360
f7086f6173f8 dirstate-v2: rename the configuration to enable the format
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48344
diff changeset
   880
     preserved: dotencode, use-dirstate-v2, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, revlogv1, share-safe, sparserevlog, store (zstd dirstate-v2 !)
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   881
  
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   882
  optimisations: re-delta-all
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   883
  
46039
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   884
  processed revlogs:
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   885
    - all-filelogs
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   886
    - changelog
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   887
    - manifest
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
   888
  
44900
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   889
  $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   890
  00changelog-*.nd (glob)
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   891
  00changelog.n
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   892
  00manifest-*.nd (glob)
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   893
  00manifest.n
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   894
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   895
  $ hg debugnodemap --metadata
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   896
  uid: * (glob)
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   897
  tip-rev: 5005
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   898
  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   899
  data-length: 121088
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   900
  data-unused: 0
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44876
diff changeset
   901
  data-unused: 0.000%
46248
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   902
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   903
Persistent nodemap and local/streaming clone
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   904
============================================
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   905
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   906
  $ cd ..
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   907
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   908
standard clone
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   909
--------------
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   910
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   911
The persistent nodemap should exist after a streaming clone
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   912
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   913
  $ hg clone --pull --quiet -U test-repo standard-clone
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   914
  $ ls -1 standard-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   915
  00changelog-*.nd (glob)
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   916
  00changelog.n
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   917
  00manifest-*.nd (glob)
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   918
  00manifest.n
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   919
  $ hg -R standard-clone debugnodemap --metadata
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   920
  uid: * (glob)
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   921
  tip-rev: 5005
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   922
  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   923
  data-length: 121088
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   924
  data-unused: 0
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   925
  data-unused: 0.000%
7488067b8c1e persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
   926
46249
3eb33aa237c0 persistent-nodemap: test it (does not) exist after a local clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46248
diff changeset
   927
3eb33aa237c0 persistent-nodemap: test it (does not) exist after a local clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46248
diff changeset
   928
local clone
3eb33aa237c0 persistent-nodemap: test it (does not) exist after a local clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46248
diff changeset
   929
------------
3eb33aa237c0 persistent-nodemap: test it (does not) exist after a local clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46248
diff changeset
   930
3eb33aa237c0 persistent-nodemap: test it (does not) exist after a local clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46248
diff changeset
   931
The persistent nodemap should exist after a streaming clone
3eb33aa237c0 persistent-nodemap: test it (does not) exist after a local clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46248
diff changeset
   932
3eb33aa237c0 persistent-nodemap: test it (does not) exist after a local clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46248
diff changeset
   933
  $ hg clone -U test-repo local-clone
3eb33aa237c0 persistent-nodemap: test it (does not) exist after a local clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46248
diff changeset
   934
  $ ls -1 local-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
46314
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
   935
  00changelog-*.nd (glob)
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
   936
  00changelog.n
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
   937
  00manifest-*.nd (glob)
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
   938
  00manifest.n
46249
3eb33aa237c0 persistent-nodemap: test it (does not) exist after a local clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46248
diff changeset
   939
  $ hg -R local-clone debugnodemap --metadata
46314
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
   940
  uid: * (glob)
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
   941
  tip-rev: 5005
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
   942
  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
   943
  data-length: 121088
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
   944
  data-unused: 0
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
   945
  data-unused: 0.000%
46250
de2ed219fd00 persistent-nodemap: test it (does not) exist after a stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46249
diff changeset
   946
46970
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   947
Test various corruption case
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   948
============================
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   949
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   950
Missing datafile
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   951
----------------
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   952
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   953
Test behavior with a missing datafile
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   954
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   955
  $ hg clone --quiet --pull test-repo corruption-test-repo
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   956
  $ ls -1 corruption-test-repo/.hg/store/00changelog*
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   957
  corruption-test-repo/.hg/store/00changelog-*.nd (glob)
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   958
  corruption-test-repo/.hg/store/00changelog.d
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   959
  corruption-test-repo/.hg/store/00changelog.i
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   960
  corruption-test-repo/.hg/store/00changelog.n
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   961
  $ rm corruption-test-repo/.hg/store/00changelog*.nd
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   962
  $ hg log -R corruption-test-repo -r .
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   963
  changeset:   5005:90d5d3ba2fc4
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   964
  tag:         tip
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   965
  user:        test
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   966
  date:        Thu Jan 01 00:00:00 1970 +0000
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   967
  summary:     a2
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   968
  
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   969
  $ ls -1 corruption-test-repo/.hg/store/00changelog*
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   970
  corruption-test-repo/.hg/store/00changelog.d
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   971
  corruption-test-repo/.hg/store/00changelog.i
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   972
  corruption-test-repo/.hg/store/00changelog.n
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   973
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   974
Truncated data file
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   975
-------------------
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   976
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   977
Test behavior with a too short datafile
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   978
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   979
rebuild the missing data
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   980
  $ hg -R corruption-test-repo debugupdatecache
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   981
  $ ls -1 corruption-test-repo/.hg/store/00changelog*
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   982
  corruption-test-repo/.hg/store/00changelog-*.nd (glob)
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   983
  corruption-test-repo/.hg/store/00changelog.d
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   984
  corruption-test-repo/.hg/store/00changelog.i
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   985
  corruption-test-repo/.hg/store/00changelog.n
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   986
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   987
truncate the file
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   988
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   989
  $ datafilepath=`ls corruption-test-repo/.hg/store/00changelog*.nd`
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   990
  $ f -s $datafilepath
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   991
  corruption-test-repo/.hg/store/00changelog-*.nd: size=121088 (glob)
48324
141e38ef8d8f tests: dd status=noxfer is not portable (issue6523)
Thomas Klausner <wiz@gatalith.at>
parents: 48295
diff changeset
   992
  $ dd if=$datafilepath bs=1000 count=10 of=$datafilepath-tmp
47035
9e3979a25bfe tests: stabilize test-persistent-nodemap.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 46990
diff changeset
   993
  10+0 records in
9e3979a25bfe tests: stabilize test-persistent-nodemap.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 46990
diff changeset
   994
  10+0 records out
48324
141e38ef8d8f tests: dd status=noxfer is not portable (issue6523)
Thomas Klausner <wiz@gatalith.at>
parents: 48295
diff changeset
   995
  * bytes * (glob)
46970
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   996
  $ mv $datafilepath-tmp $datafilepath
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   997
  $ f -s $datafilepath
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   998
  corruption-test-repo/.hg/store/00changelog-*.nd: size=10000 (glob)
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
   999
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
  1000
Check that Mercurial reaction to this event
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
  1001
46971
a3720569a43f nodemap: deal with data mmap error
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46970
diff changeset
  1002
  $ hg -R corruption-test-repo log -r . --traceback
a3720569a43f nodemap: deal with data mmap error
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46970
diff changeset
  1003
  changeset:   5005:90d5d3ba2fc4
a3720569a43f nodemap: deal with data mmap error
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46970
diff changeset
  1004
  tag:         tip
a3720569a43f nodemap: deal with data mmap error
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46970
diff changeset
  1005
  user:        test
a3720569a43f nodemap: deal with data mmap error
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46970
diff changeset
  1006
  date:        Thu Jan 01 00:00:00 1970 +0000
a3720569a43f nodemap: deal with data mmap error
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46970
diff changeset
  1007
  summary:     a2
a3720569a43f nodemap: deal with data mmap error
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46970
diff changeset
  1008
  
46970
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
  1009
99aed233aa8d nodemap: test various corruption scenario for the persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46895
diff changeset
  1010
46250
de2ed219fd00 persistent-nodemap: test it (does not) exist after a stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46249
diff changeset
  1011
stream clone
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1012
============
46250
de2ed219fd00 persistent-nodemap: test it (does not) exist after a stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46249
diff changeset
  1013
de2ed219fd00 persistent-nodemap: test it (does not) exist after a stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46249
diff changeset
  1014
The persistent nodemap should exist after a streaming clone
de2ed219fd00 persistent-nodemap: test it (does not) exist after a stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46249
diff changeset
  1015
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1016
Simple case
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1017
-----------
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1018
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1019
No race condition
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1020
47951
9c4204b7f3e4 tests: rely on dummyssh being the default
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 47795
diff changeset
  1021
  $ hg clone -U --stream ssh://user@dummy/test-repo stream-clone --debug | egrep '00(changelog|manifest)'
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
  1022
  adding [s] 00manifest.n (62 bytes)
46322
7c1367c0b5bc persistent-nodemap: also exchange the nodemap data over the wire
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46321
diff changeset
  1023
  adding [s] 00manifest-*.nd (118 KB) (glob)
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
  1024
  adding [s] 00changelog.n (62 bytes)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1025
  adding [s] 00changelog-*.nd (118 KB) (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1026
  adding [s] 00manifest.d (452 KB) (no-zstd !)
48344
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1027
  adding [s] 00manifest.d (491 KB) (zstd no-bigendian !)
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1028
  adding [s] 00manifest.d (492 KB) (zstd bigendian !)
46874
84a93fa7ecfd revlog-compression: use zstd by default (if available)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46719
diff changeset
  1029
  adding [s] 00changelog.d (360 KB) (no-zstd !)
84a93fa7ecfd revlog-compression: use zstd by default (if available)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46719
diff changeset
  1030
  adding [s] 00changelog.d (368 KB) (zstd !)
46895
6085b7f1536d store: also return some information about the type of file `walk` found
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46884
diff changeset
  1031
  adding [s] 00manifest.i (313 KB)
6085b7f1536d store: also return some information about the type of file `walk` found
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46884
diff changeset
  1032
  adding [s] 00changelog.i (313 KB)
46250
de2ed219fd00 persistent-nodemap: test it (does not) exist after a stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46249
diff changeset
  1033
  $ ls -1 stream-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
46314
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
  1034
  00changelog-*.nd (glob)
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
  1035
  00changelog.n
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
  1036
  00manifest-*.nd (glob)
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
  1037
  00manifest.n
46250
de2ed219fd00 persistent-nodemap: test it (does not) exist after a stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46249
diff changeset
  1038
  $ hg -R stream-clone debugnodemap --metadata
46314
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
  1039
  uid: * (glob)
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
  1040
  tip-rev: 5005
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
  1041
  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
  1042
  data-length: 121088
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
  1043
  data-unused: 0
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46311
diff changeset
  1044
  data-unused: 0.000%
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1045
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1046
new data appened
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1047
-----------------
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1048
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1049
Other commit happening on the server during the stream clone
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1050
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1051
setup the step-by-step stream cloning
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1052
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1053
  $ HG_TEST_STREAM_WALKED_FILE_1="$TESTTMP/sync_file_walked_1"
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1054
  $ export HG_TEST_STREAM_WALKED_FILE_1
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1055
  $ HG_TEST_STREAM_WALKED_FILE_2="$TESTTMP/sync_file_walked_2"
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1056
  $ export HG_TEST_STREAM_WALKED_FILE_2
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1057
  $ HG_TEST_STREAM_WALKED_FILE_3="$TESTTMP/sync_file_walked_3"
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1058
  $ export HG_TEST_STREAM_WALKED_FILE_3
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1059
  $ cat << EOF >> test-repo/.hg/hgrc
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1060
  > [extensions]
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1061
  > steps=$RUNTESTDIR/testlib/ext-stream-clone-steps.py
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1062
  > EOF
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1063
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1064
Check and record file state beforehand
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1065
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1066
  $ f --size test-repo/.hg/store/00changelog*
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1067
  test-repo/.hg/store/00changelog-*.nd: size=121088 (glob)
48344
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1068
  test-repo/.hg/store/00changelog.d: size=376891 (zstd no-bigendian !)
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1069
  test-repo/.hg/store/00changelog.d: size=376889 (zstd bigendian !)
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1070
  test-repo/.hg/store/00changelog.d: size=368890 (no-zstd !)
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1071
  test-repo/.hg/store/00changelog.i: size=320384
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
  1072
  test-repo/.hg/store/00changelog.n: size=62
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1073
  $ hg -R test-repo debugnodemap --metadata | tee server-metadata.txt
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1074
  uid: * (glob)
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1075
  tip-rev: 5005
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1076
  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1077
  data-length: 121088
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1078
  data-unused: 0
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1079
  data-unused: 0.000%
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1080
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1081
Prepare a commit
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1082
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1083
  $ echo foo >> test-repo/foo
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1084
  $ hg -R test-repo/ add test-repo/foo
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1085
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1086
Do a mix of clone and commit at the same time so that the file listed on disk differ at actual transfer time.
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1087
47951
9c4204b7f3e4 tests: rely on dummyssh being the default
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 47795
diff changeset
  1088
  $ (hg clone -U --stream ssh://user@dummy/test-repo stream-clone-race-1 --debug 2>> clone-output | egrep '00(changelog|manifest)' >> clone-output; touch $HG_TEST_STREAM_WALKED_FILE_3) &
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1089
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_1
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1090
  $ hg -R test-repo/ commit -m foo
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1091
  $ touch $HG_TEST_STREAM_WALKED_FILE_2
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1092
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_3
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1093
  $ cat clone-output
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
  1094
  adding [s] 00manifest.n (62 bytes)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1095
  adding [s] 00manifest-*.nd (118 KB) (glob)
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
  1096
  adding [s] 00changelog.n (62 bytes)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1097
  adding [s] 00changelog-*.nd (118 KB) (glob)
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1098
  adding [s] 00manifest.d (452 KB) (no-zstd !)
48344
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1099
  adding [s] 00manifest.d (491 KB) (zstd no-bigendian !)
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1100
  adding [s] 00manifest.d (492 KB) (zstd bigendian !)
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1101
  adding [s] 00changelog.d (360 KB) (no-zstd !)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1102
  adding [s] 00changelog.d (368 KB) (zstd !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1103
  adding [s] 00manifest.i (313 KB)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1104
  adding [s] 00changelog.i (313 KB)
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1105
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1106
Check the result state
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1107
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1108
  $ f --size stream-clone-race-1/.hg/store/00changelog*
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1109
  stream-clone-race-1/.hg/store/00changelog-*.nd: size=121088 (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1110
  stream-clone-race-1/.hg/store/00changelog.d: size=368890 (no-zstd !)
48344
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1111
  stream-clone-race-1/.hg/store/00changelog.d: size=376891 (zstd no-bigendian !)
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1112
  stream-clone-race-1/.hg/store/00changelog.d: size=376889 (zstd bigendian !)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1113
  stream-clone-race-1/.hg/store/00changelog.i: size=320384
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
  1114
  stream-clone-race-1/.hg/store/00changelog.n: size=62
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1115
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1116
  $ hg -R stream-clone-race-1 debugnodemap --metadata | tee client-metadata.txt
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1117
  uid: * (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1118
  tip-rev: 5005
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1119
  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1120
  data-length: 121088
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1121
  data-unused: 0
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1122
  data-unused: 0.000%
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1123
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1124
We get a usable nodemap, so no rewrite would be needed and the metadata should be identical
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1125
(ie: the following diff should be empty)
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1126
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1127
This isn't the case for the `no-rust` `no-pure` implementation as it use a very minimal nodemap implementation that unconditionnaly rewrite the nodemap "all the time".
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1128
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1129
#if no-rust no-pure
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1130
  $ diff -u server-metadata.txt client-metadata.txt
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1131
  --- server-metadata.txt	* (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1132
  +++ client-metadata.txt	* (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1133
  @@ -1,4 +1,4 @@
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1134
  -uid: * (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1135
  +uid: * (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1136
   tip-rev: 5005
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1137
   tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1138
   data-length: 121088
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1139
  [1]
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1140
#else
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1141
  $ diff -u server-metadata.txt client-metadata.txt
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1142
#endif
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1143
46987
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1144
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1145
Clean up after the test.
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1146
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1147
  $ rm -f "$HG_TEST_STREAM_WALKED_FILE_1"
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1148
  $ rm -f "$HG_TEST_STREAM_WALKED_FILE_2"
d70319c3ca14 nodemap: add a test about racy commit during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46971
diff changeset
  1149
  $ rm -f "$HG_TEST_STREAM_WALKED_FILE_3"
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1150
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1151
full regeneration
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1152
-----------------
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1153
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1154
A full nodemap is generated
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1155
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1156
(ideally this test would append enough data to make sure the nodemap data file
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1157
get changed, however to make thing simpler we will force the regeneration for
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1158
this test.
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1159
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1160
Check the initial state
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1161
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1162
  $ f --size test-repo/.hg/store/00changelog*
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1163
  test-repo/.hg/store/00changelog-*.nd: size=121344 (glob) (rust !)
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1164
  test-repo/.hg/store/00changelog-*.nd: size=121344 (glob) (pure !)
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1165
  test-repo/.hg/store/00changelog-*.nd: size=121152 (glob) (no-rust no-pure !)
48344
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1166
  test-repo/.hg/store/00changelog.d: size=376950 (zstd no-bigendian !)
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1167
  test-repo/.hg/store/00changelog.d: size=376948 (zstd bigendian !)
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1168
  test-repo/.hg/store/00changelog.d: size=368949 (no-zstd !)
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1169
  test-repo/.hg/store/00changelog.i: size=320448
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
  1170
  test-repo/.hg/store/00changelog.n: size=62
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1171
  $ hg -R test-repo debugnodemap --metadata | tee server-metadata-2.txt
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1172
  uid: * (glob)
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1173
  tip-rev: 5006
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1174
  tip-node: ed2ec1eef9aa2a0ec5057c51483bc148d03e810b
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1175
  data-length: 121344 (rust !)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1176
  data-length: 121344 (pure !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1177
  data-length: 121152 (no-rust no-pure !)
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1178
  data-unused: 192 (rust !)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1179
  data-unused: 192 (pure !)
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1180
  data-unused: 0 (no-rust no-pure !)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1181
  data-unused: 0.158% (rust !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1182
  data-unused: 0.158% (pure !)
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1183
  data-unused: 0.000% (no-rust no-pure !)
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1184
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1185
Performe the mix of clone and full refresh of the nodemap, so that the files
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1186
(and filenames) are different between listing time and actual transfer time.
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1187
47951
9c4204b7f3e4 tests: rely on dummyssh being the default
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 47795
diff changeset
  1188
  $ (hg clone -U --stream ssh://user@dummy/test-repo stream-clone-race-2 --debug 2>> clone-output-2 | egrep '00(changelog|manifest)' >> clone-output-2; touch $HG_TEST_STREAM_WALKED_FILE_3) &
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1189
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_1
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1190
  $ rm test-repo/.hg/store/00changelog.n
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1191
  $ rm test-repo/.hg/store/00changelog-*.nd
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1192
  $ hg -R test-repo/ debugupdatecache
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1193
  $ touch $HG_TEST_STREAM_WALKED_FILE_2
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1194
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_3
47659
f030c7d22032 walk: no longer ignore revlogs of files starting with `undo.` (issue6542)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47328
diff changeset
  1195
f030c7d22032 walk: no longer ignore revlogs of files starting with `undo.` (issue6542)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47328
diff changeset
  1196
(note: the stream clone code wronly pick the `undo.` files)
f030c7d22032 walk: no longer ignore revlogs of files starting with `undo.` (issue6542)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47328
diff changeset
  1197
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1198
  $ cat clone-output-2
47659
f030c7d22032 walk: no longer ignore revlogs of files starting with `undo.` (issue6542)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47328
diff changeset
  1199
  adding [s] undo.backup.00manifest.n (62 bytes) (known-bad-output !)
f030c7d22032 walk: no longer ignore revlogs of files starting with `undo.` (issue6542)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47328
diff changeset
  1200
  adding [s] undo.backup.00changelog.n (62 bytes) (known-bad-output !)
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
  1201
  adding [s] 00manifest.n (62 bytes)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1202
  adding [s] 00manifest-*.nd (118 KB) (glob)
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
  1203
  adding [s] 00changelog.n (62 bytes)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1204
  adding [s] 00changelog-*.nd (118 KB) (glob)
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1205
  adding [s] 00manifest.d (492 KB) (zstd !)
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1206
  adding [s] 00manifest.d (452 KB) (no-zstd !)
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1207
  adding [s] 00changelog.d (360 KB) (no-zstd !)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1208
  adding [s] 00changelog.d (368 KB) (zstd !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1209
  adding [s] 00manifest.i (313 KB)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1210
  adding [s] 00changelog.i (313 KB)
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1211
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1212
Check the result.
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1213
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1214
  $ f --size stream-clone-race-2/.hg/store/00changelog*
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1215
  stream-clone-race-2/.hg/store/00changelog-*.nd: size=121344 (glob) (rust !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1216
  stream-clone-race-2/.hg/store/00changelog-*.nd: size=121344 (glob) (pure !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1217
  stream-clone-race-2/.hg/store/00changelog-*.nd: size=121152 (glob) (no-rust no-pure !)
48344
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1218
  stream-clone-race-2/.hg/store/00changelog.d: size=376950 (zstd no-bigendian !)
f447b90a4b11 tests: allow for variation in zstd output as seen on s390x and powerpc
Julien Cristau <jcristau@debian.org>
parents: 48324
diff changeset
  1219
  stream-clone-race-2/.hg/store/00changelog.d: size=376948 (zstd bigendian !)
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1220
  stream-clone-race-2/.hg/store/00changelog.d: size=368949 (no-zstd !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1221
  stream-clone-race-2/.hg/store/00changelog.i: size=320448
47322
5bc6d2fc1cfc persistent-nodemap: use the intended uuid size
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47290
diff changeset
  1222
  stream-clone-race-2/.hg/store/00changelog.n: size=62
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1223
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1224
  $ hg -R stream-clone-race-2 debugnodemap --metadata | tee client-metadata-2.txt
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1225
  uid: * (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1226
  tip-rev: 5006
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1227
  tip-node: ed2ec1eef9aa2a0ec5057c51483bc148d03e810b
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1228
  data-length: 121344 (rust !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1229
  data-unused: 192 (rust !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1230
  data-unused: 0.158% (rust !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1231
  data-length: 121152 (no-rust no-pure !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1232
  data-unused: 0 (no-rust no-pure !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1233
  data-unused: 0.000% (no-rust no-pure !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1234
  data-length: 121344 (pure !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1235
  data-unused: 192 (pure !)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1236
  data-unused: 0.158% (pure !)
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1237
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1238
We get a usable nodemap, so no rewrite would be needed and the metadata should be identical
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1239
(ie: the following diff should be empty)
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1240
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1241
This isn't the case for the `no-rust` `no-pure` implementation as it use a very minimal nodemap implementation that unconditionnaly rewrite the nodemap "all the time".
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1242
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1243
#if no-rust no-pure
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1244
  $ diff -u server-metadata-2.txt client-metadata-2.txt
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1245
  --- server-metadata-2.txt	* (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1246
  +++ client-metadata-2.txt	* (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1247
  @@ -1,4 +1,4 @@
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1248
  -uid: * (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1249
  +uid: * (glob)
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1250
   tip-rev: 5006
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1251
   tip-node: ed2ec1eef9aa2a0ec5057c51483bc148d03e810b
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1252
   data-length: 121152
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1253
  [1]
46989
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1254
#else
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1255
  $ diff -u server-metadata-2.txt client-metadata-2.txt
aed6ceaad6d7 streamclone: treat volatile file as "fullfile"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46988
diff changeset
  1256
#endif
46988
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1257
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1258
Clean up after the test
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1259
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1260
  $ rm -f $HG_TEST_STREAM_WALKED_FILE_1
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1261
  $ rm -f $HG_TEST_STREAM_WALKED_FILE_2
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1262
  $ rm -f $HG_TEST_STREAM_WALKED_FILE_3
dc95c8ca171f nodemap: add a test about nodemap "vacuum" during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46987
diff changeset
  1263