tests/test-impexp-branch
author Yuya Nishihara <yuya@tcha.org>
Tue, 27 Oct 2009 21:59:44 +0900
changeset 9651 bd3af545c7c6
parent 4444 32ea809e5bd1
permissions -rwxr-xr-x
diffstat: made test case work with POSIX sh and printf * arithmetic expression ((...)), without $, is bashism. * printf '\xXX' seems non-standard. '\0' is okay. http://www.opengroup.org/onlinepubs/009695399/utilities/printf.html tested with bash 4.0 and dash 0.5.5.1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4442
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     1
#!/bin/sh
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     2
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     3
cat >findbranch.py <<EOF
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     4
import re, sys
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     5
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     6
head_re = re.compile('^#(?:(?:\\s+([A-Za-z][A-Za-z0-9_]*)(?:\\s.*)?)|(?:\\s*))$')
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     7
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     8
for line in sys.stdin:
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
     9
    hmatch = head_re.match(line)
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    10
    if not hmatch:
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    11
        sys.exit(1)
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    12
    if hmatch.group(1) == 'Branch':
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    13
        sys.exit(0)
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    14
sys.exit(1)
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    15
EOF
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    16
hg init a
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    17
cd a
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    18
echo "Rev 1" >rev
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    19
hg add rev
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    20
hg commit -m "No branch."
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    21
hg branch abranch
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    22
echo "Rev  2" >rev
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    23
hg commit -m "With branch."
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    24
if hg export 0 | python ../findbranch.py; then
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    25
    echo "Export of default branch revision has Branch header" 1>&2
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    26
    exit 1
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    27
fi
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    28
if hg export 1 | python ../findbranch.py; then
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    29
    :  # Do nothing
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    30
else
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    31
    echo "Export of branch revision is missing Branch header" 1>&2
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    32
    exit 1
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    33
fi
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    34
# Make sure import still works with branch information in patches.
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    35
cd ..
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    36
hg init b
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    37
cd b
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    38
hg -R ../a export 0 | hg import -
871ff96a86cc Add a test for the Branch header being in hg export.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    39
hg -R ../a export 1 | hg import -
4444
32ea809e5bd1 Alter test to test import --exact to make sure it works with branches.
Eric Hopper <hopper@omnifarious.org>
parents: 4442
diff changeset
    40
cd ..
32ea809e5bd1 Alter test to test import --exact to make sure it works with branches.
Eric Hopper <hopper@omnifarious.org>
parents: 4442
diff changeset
    41
rm -rf b
32ea809e5bd1 Alter test to test import --exact to make sure it works with branches.
Eric Hopper <hopper@omnifarious.org>
parents: 4442
diff changeset
    42
hg init b
32ea809e5bd1 Alter test to test import --exact to make sure it works with branches.
Eric Hopper <hopper@omnifarious.org>
parents: 4442
diff changeset
    43
cd b
32ea809e5bd1 Alter test to test import --exact to make sure it works with branches.
Eric Hopper <hopper@omnifarious.org>
parents: 4442
diff changeset
    44
hg -R ../a export 0 | hg import --exact -
32ea809e5bd1 Alter test to test import --exact to make sure it works with branches.
Eric Hopper <hopper@omnifarious.org>
parents: 4442
diff changeset
    45
hg -R ../a export 1 | hg import --exact -