tests/test-persistent-nodemap-stream-clone.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 08 Nov 2023 22:27:32 +0100
changeset 51141 c845479fc64d
parent 50725 7e5be4a7cda7
permissions -rw-r--r--
cleanup: drop the `bytes` compatibility for attribute related function We can rely on the builtins directly now.
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