tests/test-persistent-nodemap-stream-clone.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Thu, 28 Mar 2024 07:12:09 +0000
branchstable
changeset 51539 780fc16b62e6
parent 50725 7e5be4a7cda7
permissions -rw-r--r--
bundle2: make the "hgtagsfnodes" part advisory This bundle2 part is about helping the client to warms its cache. There is no reason for it to be mandatory. So we mark it advisory.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50708
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
50709
517fcefe8a39 stream-clone: add a stream-v3 variant of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50708
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: 50708
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: 50708
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: 50708
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: 50708
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: 50708
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: 50708
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: 50708
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: 50708
diff changeset
    13
50708
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
50725
7e5be4a7cda7 tests: use grep -E instead of obsolescent egrep
Mads Kiilerich <mads@kiilerich.com>
parents: 50709
diff changeset
    46
  $ hg clone -U --stream ssh://user@dummy/test-repo stream-clone --debug | grep -E '00(changelog|manifest)'
50708
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)
50725
7e5be4a7cda7 tests: use grep -E instead of obsolescent egrep
Mads Kiilerich <mads@kiilerich.com>
parents: 50709
diff changeset
    55
  $ ls -1 stream-clone/.hg/store/ | grep -E '00(changelog|manifest)(\.n|-.*\.nd)'
50708
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
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    82
  $ HG_TEST_STREAM_WALKED_FILE_1="$TESTTMP/sync_file_walked_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
    83
  $ export HG_TEST_STREAM_WALKED_FILE_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
    84
  $ HG_TEST_STREAM_WALKED_FILE_2="$TESTTMP/sync_file_walked_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
    85
  $ export HG_TEST_STREAM_WALKED_FILE_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
    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
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    88
  $ 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
    89
  > [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
    90
  > 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
    91
  > 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
    92
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
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
    94
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
  $ 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
    96
  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
    97
  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
    98
  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
    99
  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
   100
  $ 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
   101
  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
   102
  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
   103
  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
   104
  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
   105
  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
   106
  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
   107
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
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
   109
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
  $ 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
   111
  $ 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
   112
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
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
   114
50725
7e5be4a7cda7 tests: use grep -E instead of obsolescent egrep
Mads Kiilerich <mads@kiilerich.com>
parents: 50709
diff changeset
   115
  $ (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_3) &
50708
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
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_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
   117
  $ 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
   118
  created new head
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
  $ touch $HG_TEST_STREAM_WALKED_FILE_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
   120
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_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
   121
  $ 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
   122
  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
   123
  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
   124
  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
   125
  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
   126
  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
   127
  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
   128
  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
   129
  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
   130
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
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
   132
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
  $ 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
   134
  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
   135
  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
   136
  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
   137
  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
   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
  $ 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
   140
  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
   141
  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
   142
  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
   143
  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
   144
  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
   145
  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
   146
  $ 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
   147
  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
   148
  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
   149
  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
   150
  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
   151
  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
   152
  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
   153
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
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
   155
(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
   156
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
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
   158
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
#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
   160
  $ 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
   161
  --- 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
   162
  +++ 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
   163
  @@ -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
   164
  -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
   165
  +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
   166
   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
   167
   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
   168
   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
   169
  [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
   170
#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
   171
  $ 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
   172
#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
   173
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
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
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
   176
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
  $ rm -f "$HG_TEST_STREAM_WALKED_FILE_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
   178
  $ rm -f "$HG_TEST_STREAM_WALKED_FILE_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
   179
  $ rm -f "$HG_TEST_STREAM_WALKED_FILE_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
   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
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
   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
999b710d48d2 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   184
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
   185
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
(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
   187
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
   188
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
   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
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
   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
  $ 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
   193
  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
   194
  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
   195
  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
   196
  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
   197
  $ 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
   198
  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
   199
  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
   200
  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
   201
  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
   202
  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
   203
  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
   204
  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
   205
  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
   206
  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
   207
  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
   208
  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
   209
  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
   210
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
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
   212
(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
   213
50725
7e5be4a7cda7 tests: use grep -E instead of obsolescent egrep
Mads Kiilerich <mads@kiilerich.com>
parents: 50709
diff changeset
   214
  $ (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_3) &
50708
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
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_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
   216
  $ 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
   217
  $ 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
   218
  $ hg -R test-repo/ debugupdatecache
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
  $ touch $HG_TEST_STREAM_WALKED_FILE_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
   220
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_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
   221
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
(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
   223
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
  $ 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
   225
  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
   226
  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
   227
  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
   228
  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
   229
  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
   230
  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
   231
  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
   232
  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
   233
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
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
   235
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
  $ 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
   237
  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
   238
  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
   239
  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
   240
  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
   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
  $ 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
   243
  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
   244
  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
   245
  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
   246
  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
   247
  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
   248
  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
   249
  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
   250
  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
   251
  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
   252
  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
   253
  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
   254
  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
   255
  $ 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
   256
  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
   257
  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
   258
  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
   259
  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
   260
  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
   261
  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
   262
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
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
   264
(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
   265
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
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
   267
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
#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
   269
  $ 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
   270
  --- 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
   271
  +++ 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
   272
  @@ -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
   273
  -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
   274
  +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
   275
   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
   276
   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
   277
   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
   278
  [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
   279
#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
   280
  $ 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
   281
#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
   282
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
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
   284
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
  $ rm -f $HG_TEST_STREAM_WALKED_FILE_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
   286
  $ rm -f $HG_TEST_STREAM_WALKED_FILE_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
   287
  $ rm -f $HG_TEST_STREAM_WALKED_FILE_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
   288