tests/test-mq-qimport
author Henrik Stuart <henrik.stuart at edlund.dk>
Wed, 08 Apr 2009 19:32:16 +0200
changeset 8025 1280934dd2dd
parent 7421 4c4324476be6
child 8362 bbc74c05b8a4
permissions -rwxr-xr-x
patchbomb: Support initial in-reply-to header This allows follow-up/revised patches to appear properly threaded in mail readers and in the archives, reducing noise.

#!/bin/sh

cat > writelines.py <<EOF
import sys
path = sys.argv[1]
args = sys.argv[2:]
assert (len(args) % 2) == 0

f = file(path, 'wb')
for i in xrange(len(args)/2):
   count, s = args[2*i:2*i+2]
   count = int(count)
   s = s.decode('string_escape')
   f.write(s*count)
f.close()

EOF

echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
echo "[diff]" >> $HGRCPATH
echo "git=1" >> $HGRCPATH

hg init repo
cd repo

echo % qimport non-existing-file
hg qimport non-existing-file

echo % import URL
echo foo >> foo
hg add foo
hg diff > $HGTMP/url.diff
hg revert --no-backup foo
rm foo
# Under unix: file:///foobar/blah
# Under windows: file:///c:/foobar/blah
patchurl=`echo $HGTMP/url.diff | tr '\\\\' /`
expr $patchurl : "\/" > /dev/null
if [ $? -ne 0 ]; then
    patchurl='/'$patchurl
fi
hg qimport file://$patchurl
hg qun

echo % import patch that already exists
echo foo2 >> foo
hg add foo
hg diff > ../url.diff
hg revert --no-backup foo
rm foo
hg qimport ../url.diff
hg qpush
cat foo
hg qpop
echo % qimport -f
hg qimport -f ../url.diff
hg qpush
cat foo
hg qpop

echo % build diff with CRLF
python ../writelines.py b 5 'a\n' 5 'a\r\n'
hg ci -Am addb
python ../writelines.py b 2 'a\n' 10 'b\n' 2 'a\r\n'
hg diff > b.diff
hg up -C
echo % qimport CRLF diff
hg qimport b.diff
hg qpush