|
|
#!/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 email
|
|
|
hg qimport --push -n email - <<EOF
|
|
|
From: Username in email <test@example.net>
|
|
|
Subject: [PATCH] Message in email
|
|
|
Date: Fri, 02 Jan 1970 00:00:00 +0000
|
|
|
|
|
|
Text before patch.
|
|
|
|
|
|
# HG changeset patch
|
|
|
# User Username in patch <test@example.net>
|
|
|
# Date 0 0
|
|
|
# Node ID 1a706973a7d84cb549823634a821d9bdf21c6220
|
|
|
# Parent 0000000000000000000000000000000000000000
|
|
|
First line of commit message.
|
|
|
|
|
|
More text in commit message.
|
|
|
--- confuse the diff detection
|
|
|
|
|
|
diff --git a/x b/x
|
|
|
new file mode 100644
|
|
|
--- /dev/null
|
|
|
+++ b/x
|
|
|
@@ -0,0 +1,1 @@
|
|
|
+new file
|
|
|
Text after patch.
|
|
|
|
|
|
EOF
|
|
|
|
|
|
echo % hg tip -v
|
|
|
hg tip -v
|
|
|
hg qpop
|
|
|
hg qdelete email
|
|
|
|
|
|
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
|
|
|
|
|
|
echo % try to import --push
|
|
|
echo another >> b
|
|
|
hg diff > another.diff
|
|
|
hg up -C
|
|
|
hg qimport --push another.diff
|
|
|
hg qfin -a
|
|
|
hg qimport -rtip -P
|
|
|
|