tests/testlib/stream_clone_setup.sh
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 17 Jan 2022 18:51:47 +0100
changeset 48598 a6f16ec07ed7
permissions -rw-r--r--
stream-clone: add a explicit test for format change during stream clone They are different kind of requirements, the one which impact the data storage and are relevant to the files being streamed and the one which does not. For example some requirements are only relevant to the working copy, like sparse, or dirstate-v2. Since they are irrelevant to the content being streamed, they do not prevent the receiving side to use streaming clone and mercurial skip adverting them over the wire and, ideally, within the bundle. In addition, this let the client decide to use whichever format it desire for the part that does not affect the store itself. So the configuration related to these format are used as normal when doing a streaming clone. In practice, the feature was not really tested and is badly broken with bundle-2, since the requirements are not filtered out from the stream bundle. So we start with adding simple tests as a good base before the fix and adjust the feature. Differential Revision: https://phab.mercurial-scm.org/D12029
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48598
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     1
# setup some files and commit for a good stream clone testing.
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     2
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
touch foo
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     4
hg -q commit -A -m initial
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     5
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     6
python3 << EOF
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     7
for i in range(1024):
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     8
    with open(str(i), 'wb') as fh:
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     9
        fh.write(b"%d" % i) and None
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    10
EOF
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    11
hg -q commit -A -m 'add a lot of files'
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    12
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    13
# (the status call is to check for issue5130)
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    14
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    15
hg st
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    16
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    17
# add files with "tricky" name:
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    18
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    19
echo foo > 00changelog.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    20
echo foo > 00changelog.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    21
echo foo > 00changelog.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    22
echo foo > 00changelog-ab349180a0405010.nd
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    23
echo foo > 00manifest.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    24
echo foo > 00manifest.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    25
echo foo > foo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    26
echo foo > foo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    27
echo foo > foo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    28
echo foo > undo.py
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    29
echo foo > undo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    30
echo foo > undo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    31
echo foo > undo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    32
echo foo > undo.foo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    33
echo foo > undo.foo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    34
echo foo > undo.foo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    35
echo foo > undo.babar
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    36
mkdir savanah
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    37
echo foo > savanah/foo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    38
echo foo > savanah/foo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    39
echo foo > savanah/foo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    40
echo foo > savanah/undo.py
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    41
echo foo > savanah/undo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    42
echo foo > savanah/undo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    43
echo foo > savanah/undo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    44
echo foo > savanah/undo.foo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    45
echo foo > savanah/undo.foo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    46
echo foo > savanah/undo.foo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    47
echo foo > savanah/undo.babar
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    48
mkdir data
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    49
echo foo > data/foo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    50
echo foo > data/foo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    51
echo foo > data/foo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    52
echo foo > data/undo.py
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    53
echo foo > data/undo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    54
echo foo > data/undo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    55
echo foo > data/undo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    56
echo foo > data/undo.foo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    57
echo foo > data/undo.foo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    58
echo foo > data/undo.foo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    59
echo foo > data/undo.babar
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    60
mkdir meta
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    61
echo foo > meta/foo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    62
echo foo > meta/foo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    63
echo foo > meta/foo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    64
echo foo > meta/undo.py
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    65
echo foo > meta/undo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    66
echo foo > meta/undo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    67
echo foo > meta/undo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    68
echo foo > meta/undo.foo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    69
echo foo > meta/undo.foo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    70
echo foo > meta/undo.foo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    71
echo foo > meta/undo.babar
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    72
mkdir store
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    73
echo foo > store/foo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    74
echo foo > store/foo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    75
echo foo > store/foo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    76
echo foo > store/undo.py
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    77
echo foo > store/undo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    78
echo foo > store/undo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    79
echo foo > store/undo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    80
echo foo > store/undo.foo.i
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    81
echo foo > store/undo.foo.d
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    82
echo foo > store/undo.foo.n
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    83
echo foo > store/undo.babar
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    84
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    85
# Name with special characters
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    86
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    87
echo foo > store/CélesteVille_is_a_Capital_City
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    88
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    89
# name causing issue6581
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    90
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    91
mkdir -p container/isam-build-centos7/
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    92
touch container/isam-build-centos7/bazel-coverage-generator-sandboxfs-compatibility-0758e3e4f6057904d44399bd666faba9e7f40686.patch
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    93
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    94
# Add all that
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    95
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    96
hg add .
a6f16ec07ed7 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    97
hg ci -m 'add files with "tricky" name'