tests/test-mq-qimport
author Steve Borho <steve@borho.org>
Fri, 22 May 2009 11:42:21 -0500
changeset 8545 3682a19bb637
parent 8362 bbc74c05b8a4
child 9287 53fdf18fd63b
permissions -rwxr-xr-x
merge: give hint as to how to discover uncommitted changes Many users will try 'hg diff' here, and it will not show them missing files.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6027
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     1
#!/bin/sh
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     2
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     3
cat > writelines.py <<EOF
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     4
import sys
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     5
path = sys.argv[1]
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     6
args = sys.argv[2:]
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     7
assert (len(args) % 2) == 0
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     8
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     9
f = file(path, 'wb')
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    10
for i in xrange(len(args)/2):
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    11
   count, s = args[2*i:2*i+2]
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    12
   count = int(count)
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    13
   s = s.decode('string_escape')
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    14
   f.write(s*count)
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    15
f.close()
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    16
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    17
EOF
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    18
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    19
echo "[extensions]" >> $HGRCPATH
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    20
echo "mq=" >> $HGRCPATH
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    21
echo "[diff]" >> $HGRCPATH
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    22
echo "git=1" >> $HGRCPATH
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    23
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    24
hg init repo
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    25
cd repo
6940
05ec27530d04 qimport: report filename in case of IOError
Martin Geisler <mg@daimi.au.dk>
parents: 6027
diff changeset
    26
05ec27530d04 qimport: report filename in case of IOError
Martin Geisler <mg@daimi.au.dk>
parents: 6027
diff changeset
    27
echo % qimport non-existing-file
7421
4c4324476be6 Catch both IOError and OSError, fix regression introduced by 8046f0a070a6
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7273
diff changeset
    28
hg qimport non-existing-file
6940
05ec27530d04 qimport: report filename in case of IOError
Martin Geisler <mg@daimi.au.dk>
parents: 6027
diff changeset
    29
7158
d1d011accf94 mq: let qimport read patches from URLs
Brendan Cully <brendan@kublai.com>
parents: 6940
diff changeset
    30
echo % import URL
d1d011accf94 mq: let qimport read patches from URLs
Brendan Cully <brendan@kublai.com>
parents: 6940
diff changeset
    31
echo foo >> foo
d1d011accf94 mq: let qimport read patches from URLs
Brendan Cully <brendan@kublai.com>
parents: 6940
diff changeset
    32
hg add foo
d1d011accf94 mq: let qimport read patches from URLs
Brendan Cully <brendan@kublai.com>
parents: 6940
diff changeset
    33
hg diff > $HGTMP/url.diff
d1d011accf94 mq: let qimport read patches from URLs
Brendan Cully <brendan@kublai.com>
parents: 6940
diff changeset
    34
hg revert --no-backup foo
d1d011accf94 mq: let qimport read patches from URLs
Brendan Cully <brendan@kublai.com>
parents: 6940
diff changeset
    35
rm foo
7266
e7f6401584f7 test-mq-qimport: fix URL generation under windows
Patrick Mezard <pmezard@gmail.com>
parents: 7160
diff changeset
    36
# Under unix: file:///foobar/blah
e7f6401584f7 test-mq-qimport: fix URL generation under windows
Patrick Mezard <pmezard@gmail.com>
parents: 7160
diff changeset
    37
# Under windows: file:///c:/foobar/blah
7273
84f807918864 '\' should be escaped twice, for the shell, and for tr
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7272
diff changeset
    38
patchurl=`echo $HGTMP/url.diff | tr '\\\\' /`
7266
e7f6401584f7 test-mq-qimport: fix URL generation under windows
Patrick Mezard <pmezard@gmail.com>
parents: 7160
diff changeset
    39
expr $patchurl : "\/" > /dev/null
e7f6401584f7 test-mq-qimport: fix URL generation under windows
Patrick Mezard <pmezard@gmail.com>
parents: 7160
diff changeset
    40
if [ $? -ne 0 ]; then
e7f6401584f7 test-mq-qimport: fix URL generation under windows
Patrick Mezard <pmezard@gmail.com>
parents: 7160
diff changeset
    41
    patchurl='/'$patchurl
e7f6401584f7 test-mq-qimport: fix URL generation under windows
Patrick Mezard <pmezard@gmail.com>
parents: 7160
diff changeset
    42
fi
e7f6401584f7 test-mq-qimport: fix URL generation under windows
Patrick Mezard <pmezard@gmail.com>
parents: 7160
diff changeset
    43
hg qimport file://$patchurl
7158
d1d011accf94 mq: let qimport read patches from URLs
Brendan Cully <brendan@kublai.com>
parents: 6940
diff changeset
    44
hg qun
d1d011accf94 mq: let qimport read patches from URLs
Brendan Cully <brendan@kublai.com>
parents: 6940
diff changeset
    45
7160
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    46
echo % import patch that already exists
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    47
echo foo2 >> foo
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    48
hg add foo
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    49
hg diff > ../url.diff
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    50
hg revert --no-backup foo
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    51
rm foo
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    52
hg qimport ../url.diff
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    53
hg qpush
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    54
cat foo
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    55
hg qpop
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    56
echo % qimport -f
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    57
hg qimport -f ../url.diff
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    58
hg qpush
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    59
cat foo
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    60
hg qpop
1b7b21b634f2 mq: make qimport -f work properly. Closes issue1255.
Brendan Cully <brendan@kublai.com>
parents: 7158
diff changeset
    61
6940
05ec27530d04 qimport: report filename in case of IOError
Martin Geisler <mg@daimi.au.dk>
parents: 6027
diff changeset
    62
echo % build diff with CRLF
6027
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    63
python ../writelines.py b 5 'a\n' 5 'a\r\n'
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    64
hg ci -Am addb
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    65
python ../writelines.py b 2 'a\n' 10 'b\n' 2 'a\r\n'
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    66
hg diff > b.diff
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    67
hg up -C
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    68
echo % qimport CRLF diff
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    69
hg qimport b.diff
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    70
hg qpush
cee68264ed92 mq: qimport must read patches in binary mode
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    71
8362
bbc74c05b8a4 mq: add -P/--push option to qimport
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7421
diff changeset
    72
echo % try to import --push
bbc74c05b8a4 mq: add -P/--push option to qimport
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7421
diff changeset
    73
echo another >> b
bbc74c05b8a4 mq: add -P/--push option to qimport
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7421
diff changeset
    74
hg diff > another.diff
bbc74c05b8a4 mq: add -P/--push option to qimport
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7421
diff changeset
    75
hg up -C
bbc74c05b8a4 mq: add -P/--push option to qimport
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7421
diff changeset
    76
hg qimport --push another.diff
bbc74c05b8a4 mq: add -P/--push option to qimport
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7421
diff changeset
    77
hg qfin -a
bbc74c05b8a4 mq: add -P/--push option to qimport
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7421
diff changeset
    78
hg qimport -rtip -P