tests/test-persistent-nodemap-stream-clone.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Tue, 11 Mar 2025 02:29:42 +0100
branchstable
changeset 53042 cdd7bf612c7b
parent 52359 3f0cf7bb3086
permissions -rw-r--r--
bundle-spec: properly format boolean parameter (issue6960) This was breaking automatic clone bundle generation. This changeset fixes it and add a test to catch it in the future.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     1
=======================================================
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     2
Test the persistent on-disk nodemap during stream-clone
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
=======================================================
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     4
50706
517fcefe8a39 stream-clone: add a stream-v3 variant of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50705
diff changeset
     5
#testcases stream-v2 stream-v3
517fcefe8a39 stream-clone: add a stream-v3 variant of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50705
diff changeset
     6
517fcefe8a39 stream-clone: add a stream-v3 variant of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50705
diff changeset
     7
#if stream-v3
517fcefe8a39 stream-clone: add a stream-v3 variant of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50705
diff changeset
     8
  $ cat << EOF >> $HGRCPATH
517fcefe8a39 stream-clone: add a stream-v3 variant of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50705
diff changeset
     9
  > [experimental]
517fcefe8a39 stream-clone: add a stream-v3 variant of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50705
diff changeset
    10
  > stream-v3=yes
517fcefe8a39 stream-clone: add a stream-v3 variant of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50705
diff changeset
    11
  > EOF
517fcefe8a39 stream-clone: add a stream-v3 variant of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50705
diff changeset
    12
#endif
517fcefe8a39 stream-clone: add a stream-v3 variant of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50705
diff changeset
    13
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    14
Setup
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    15
=====
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    16
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    17
#if no-rust
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    18
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    19
  $ cat << EOF >> $HGRCPATH
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    20
  > [format]
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    21
  > use-persistent-nodemap=yes
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    22
  > [devel]
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    23
  > persistent-nodemap=yes
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    24
  > [storage]
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    25
  > # to avoid spamming the test
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    26
  > revlog.persistent-nodemap.slow-path=allow
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    27
  > EOF
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    28
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    29
#endif
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    30
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    31
Recreate the same repo as in `test-persistent-nodemap.t`
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    32
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    33
  $ hg init test-repo --config storage.revlog.persistent-nodemap.slow-path=allow
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    34
  $ hg -R test-repo debugbuilddag .+5000 --new-file
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    35
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    36
stream clone
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    37
============
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    38
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    39
The persistent nodemap should exist after a streaming clone
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    40
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    41
Simple case
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    42
-----------
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    43
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    44
No race condition
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    45
50722
7e5be4a7cda7 tests: use grep -E instead of obsolescent egrep
Mads Kiilerich <mads@kiilerich.com>
parents: 50706
diff changeset
    46
  $ hg clone -U --stream ssh://user@dummy/test-repo stream-clone --debug | grep -E '00(changelog|manifest)'
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    47
  adding [s] 00manifest.n (62 bytes)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    48
  adding [s] 00manifest-*.nd (118 KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    49
  adding [s] 00manifest.d (4?? KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    50
  adding [s] 00manifest.i (313 KB)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    51
  adding [s] 00changelog.n (62 bytes)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    52
  adding [s] 00changelog-*.nd (118 KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    53
  adding [s] 00changelog.d (3?? KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    54
  adding [s] 00changelog.i (313 KB)
50722
7e5be4a7cda7 tests: use grep -E instead of obsolescent egrep
Mads Kiilerich <mads@kiilerich.com>
parents: 50706
diff changeset
    55
  $ ls -1 stream-clone/.hg/store/ | grep -E '00(changelog|manifest)(\.n|-.*\.nd)'
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    56
  00changelog-*.nd (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    57
  00changelog.n
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    58
  00manifest-*.nd (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    59
  00manifest.n
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    60
  $ hg -R stream-clone debugnodemap --metadata
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    61
  uid: * (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    62
  tip-rev: 5000
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    63
  tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    64
  data-length: 121088
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    65
  data-unused: 0
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    66
  data-unused: 0.000%
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    67
  $ hg verify -R stream-clone
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    68
  checking changesets
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    69
  checking manifests
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    70
  crosschecking files in changesets and manifests
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    71
  checking files
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    72
  checking dirstate
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    73
  checked 5001 changesets with 5001 changes to 5001 files
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    74
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    75
new data appened
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    76
-----------------
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    77
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    78
Other commit happening on the server during the stream clone
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    79
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    80
setup the step-by-step stream cloning
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    81
52359
3f0cf7bb3086 stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52358
diff changeset
    82
  $ HG_TEST_STREAM_WALKED_FILE_1="$TESTTMP/sync_file_walked_1"
3f0cf7bb3086 stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52358
diff changeset
    83
  $ export HG_TEST_STREAM_WALKED_FILE_1
3f0cf7bb3086 stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52358
diff changeset
    84
  $ HG_TEST_STREAM_WALKED_FILE_2="$TESTTMP/sync_file_walked_2"
3f0cf7bb3086 stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52358
diff changeset
    85
  $ export HG_TEST_STREAM_WALKED_FILE_2
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    86
  $ HG_TEST_STREAM_WALKED_FILE_3="$TESTTMP/sync_file_walked_3"
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    87
  $ export HG_TEST_STREAM_WALKED_FILE_3
52358
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
    88
  $ HG_TEST_STREAM_WALKED_FILE_4="$TESTTMP/sync_file_walked_4"
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
    89
  $ export HG_TEST_STREAM_WALKED_FILE_4
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
    90
  $ HG_TEST_STREAM_WALKED_FILE_5="$TESTTMP/sync_file_walked_5"
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
    91
  $ export HG_TEST_STREAM_WALKED_FILE_5
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    92
  $ cat << EOF >> test-repo/.hg/hgrc
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    93
  > [extensions]
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    94
  > steps=$RUNTESTDIR/testlib/ext-stream-clone-steps.py
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    95
  > EOF
52359
3f0cf7bb3086 stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52358
diff changeset
    96
(we don't need this wait point)
3f0cf7bb3086 stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52358
diff changeset
    97
  $ touch $HG_TEST_STREAM_WALKED_FILE_2
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    98
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    99
Check and record file state beforehand
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   100
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   101
  $ f --size test-repo/.hg/store/00changelog*
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   102
  test-repo/.hg/store/00changelog-*.nd: size=121088 (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   103
  test-repo/.hg/store/00changelog.d: size=3????? (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   104
  test-repo/.hg/store/00changelog.i: size=320064
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   105
  test-repo/.hg/store/00changelog.n: size=62
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   106
  $ hg -R test-repo debugnodemap --metadata | tee server-metadata.txt
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   107
  uid: * (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   108
  tip-rev: 5000
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   109
  tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   110
  data-length: 121088
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   111
  data-unused: 0
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   112
  data-unused: 0.000%
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   113
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   114
Prepare a commit
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   115
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   116
  $ echo foo >> test-repo/foo
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   117
  $ hg -R test-repo/ add test-repo/foo
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   118
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   119
Do a mix of clone and commit at the same time so that the file listed on disk differ at actual transfer time.
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   120
52358
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   121
  $ (hg clone -U --stream ssh://user@dummy/test-repo stream-clone-race-1 --debug 2>> clone-output | grep -E '00(changelog|manifest)' >> clone-output; touch $HG_TEST_STREAM_WALKED_FILE_5) &
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   122
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_3
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   123
  $ hg -R test-repo/ commit -m foo
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   124
  created new head
52358
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   125
  $ touch $HG_TEST_STREAM_WALKED_FILE_4
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   126
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_5
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   127
  $ cat clone-output
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   128
  adding [s] 00manifest.n (62 bytes)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   129
  adding [s] 00manifest-*.nd (118 KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   130
  adding [s] 00manifest.d (4?? KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   131
  adding [s] 00manifest.i (313 KB)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   132
  adding [s] 00changelog.n (62 bytes)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   133
  adding [s] 00changelog-*.nd (118 KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   134
  adding [s] 00changelog.d (36? KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   135
  adding [s] 00changelog.i (313 KB)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   136
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   137
Check the result state
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   138
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   139
  $ f --size stream-clone-race-1/.hg/store/00changelog*
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   140
  stream-clone-race-1/.hg/store/00changelog-*.nd: size=121088 (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   141
  stream-clone-race-1/.hg/store/00changelog.d: size=3????? (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   142
  stream-clone-race-1/.hg/store/00changelog.i: size=320064
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   143
  stream-clone-race-1/.hg/store/00changelog.n: size=62
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   144
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   145
  $ hg -R stream-clone-race-1 debugnodemap --metadata | tee client-metadata.txt
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   146
  uid: * (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   147
  tip-rev: 5000
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   148
  tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   149
  data-length: 121088
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   150
  data-unused: 0
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   151
  data-unused: 0.000%
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   152
  $ hg verify -R stream-clone-race-1
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   153
  checking changesets
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   154
  checking manifests
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   155
  crosschecking files in changesets and manifests
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   156
  checking files
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   157
  checking dirstate
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   158
  checked 5001 changesets with 5001 changes to 5001 files
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   159
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   160
We get a usable nodemap, so no rewrite would be needed and the metadata should be identical
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   161
(ie: the following diff should be empty)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   162
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   163
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".
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   164
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   165
#if no-rust no-pure
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   166
  $ diff -u server-metadata.txt client-metadata.txt
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   167
  --- server-metadata.txt	* (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   168
  +++ client-metadata.txt	* (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   169
  @@ -1,4 +1,4 @@
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   170
  -uid: * (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   171
  +uid: * (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   172
   tip-rev: 5000
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   173
   tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   174
   data-length: 121088
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   175
  [1]
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   176
#else
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   177
  $ diff -u server-metadata.txt client-metadata.txt
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   178
#endif
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   179
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   180
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   181
Clean up after the test.
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   182
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   183
  $ rm -f "$HG_TEST_STREAM_WALKED_FILE_3"
52358
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   184
  $ rm -f "$HG_TEST_STREAM_WALKED_FILE_4"
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   185
  $ rm -f "$HG_TEST_STREAM_WALKED_FILE_5"
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   186
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   187
full regeneration
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   188
-----------------
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   189
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   190
A full nodemap is generated
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   191
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   192
(ideally this test would append enough data to make sure the nodemap data file
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   193
get changed, however to make thing simpler we will force the regeneration for
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   194
this test.
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   195
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   196
Check the initial state
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   197
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   198
  $ f --size test-repo/.hg/store/00changelog*
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   199
  test-repo/.hg/store/00changelog-*.nd: size=121??? (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   200
  test-repo/.hg/store/00changelog.d: size=3????? (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   201
  test-repo/.hg/store/00changelog.i: size=320128
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   202
  test-repo/.hg/store/00changelog.n: size=62
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   203
  $ hg -R test-repo debugnodemap --metadata | tee server-metadata-2.txt
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   204
  uid: * (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   205
  tip-rev: 5001
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   206
  tip-node: e63c23eaa88ae77967edcf4ea194d31167c478b0
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   207
  data-length: 121408 (pure !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   208
  data-unused: 256 (pure !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   209
  data-unused: 0.211% (pure !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   210
  data-length: 121408 (rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   211
  data-unused: 256 (rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   212
  data-unused: 0.211% (rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   213
  data-length: 121152 (no-pure no-rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   214
  data-unused: 0 (no-pure no-rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   215
  data-unused: 0.000% (no-pure no-rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   216
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   217
Performe the mix of clone and full refresh of the nodemap, so that the files
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   218
(and filenames) are different between listing time and actual transfer time.
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   219
52358
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   220
  $ (hg clone -U --stream ssh://user@dummy/test-repo stream-clone-race-2 --debug 2>> clone-output-2 | grep -E '00(changelog|manifest)' >> clone-output-2; touch $HG_TEST_STREAM_WALKED_FILE_5) &
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   221
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_3
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   222
  $ rm test-repo/.hg/store/00changelog.n
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   223
  $ rm test-repo/.hg/store/00changelog-*.nd
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   224
  $ hg -R test-repo/ debugupdatecache
52358
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   225
  $ touch $HG_TEST_STREAM_WALKED_FILE_4
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   226
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_5
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   227
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   228
(note: the stream clone code wronly pick the `undo.` files)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   229
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   230
  $ cat clone-output-2
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   231
  adding [s] 00manifest.n (62 bytes)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   232
  adding [s] 00manifest-*.nd (118 KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   233
  adding [s] 00manifest.d (4?? KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   234
  adding [s] 00manifest.i (313 KB)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   235
  adding [s] 00changelog.n (62 bytes)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   236
  adding [s] 00changelog-*.nd (11? KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   237
  adding [s] 00changelog.d (3?? KB) (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   238
  adding [s] 00changelog.i (313 KB)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   239
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   240
Check the result.
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   241
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   242
  $ f --size stream-clone-race-2/.hg/store/00changelog*
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   243
  stream-clone-race-2/.hg/store/00changelog-*.nd: size=1????? (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   244
  stream-clone-race-2/.hg/store/00changelog.d: size=3????? (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   245
  stream-clone-race-2/.hg/store/00changelog.i: size=320128
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   246
  stream-clone-race-2/.hg/store/00changelog.n: size=62
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   247
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   248
  $ hg -R stream-clone-race-2 debugnodemap --metadata | tee client-metadata-2.txt
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   249
  uid: * (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   250
  tip-rev: 5001
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   251
  tip-node: e63c23eaa88ae77967edcf4ea194d31167c478b0
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   252
  data-length: 121408 (pure !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   253
  data-unused: 256 (pure !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   254
  data-unused: 0.211% (pure !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   255
  data-length: 121408 (rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   256
  data-unused: 256 (rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   257
  data-unused: 0.211% (rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   258
  data-length: 121152 (no-pure no-rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   259
  data-unused: 0 (no-pure no-rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   260
  data-unused: 0.000% (no-pure no-rust !)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   261
  $ hg verify -R stream-clone-race-2
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   262
  checking changesets
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   263
  checking manifests
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   264
  crosschecking files in changesets and manifests
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   265
  checking files
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   266
  checking dirstate
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   267
  checked 5002 changesets with 5002 changes to 5002 files
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   268
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   269
We get a usable nodemap, so no rewrite would be needed and the metadata should be identical
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   270
(ie: the following diff should be empty)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   271
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   272
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".
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   273
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   274
#if no-rust no-pure
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   275
  $ diff -u server-metadata-2.txt client-metadata-2.txt
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   276
  --- server-metadata-2.txt	* (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   277
  +++ client-metadata-2.txt	* (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   278
  @@ -1,4 +1,4 @@
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   279
  -uid: * (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   280
  +uid: * (glob)
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   281
   tip-rev: 5001
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   282
   tip-node: e63c23eaa88ae77967edcf4ea194d31167c478b0
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   283
   data-length: 121152
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   284
  [1]
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   285
#else
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   286
  $ diff -u server-metadata-2.txt client-metadata-2.txt
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   287
#endif
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   288
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   289
Clean up after the test
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   290
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   291
  $ rm -f $HG_TEST_STREAM_WALKED_FILE_3
52358
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   292
  $ rm -f $HG_TEST_STREAM_WALKED_FILE_4
11484a19cd77 stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50722
diff changeset
   293
  $ rm -f $HG_TEST_STREAM_WALKED_FILE_5
50705
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   294