##// END OF EJS Templates
mq: fix qimport --name --existing --force on win32...
mq: fix qimport --name --existing --force on win32 os.rename() does not overwrite existing targets on Windows.

File last commit:

r11701:84fb29f5 default
r11701:84fb29f5 default
Show More
test-mq-qimport
127 lines | 2.4 KiB | text/plain | TextLexer
#!/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
hg qpop -a
hg qdel -k 2.diff
echo % qimport -e
hg qimport -e 2.diff
hg qdel -k 2.diff
echo % qimport -e --name newname oldexisitingpatch
hg qimport -e --name this-name-is-better 2.diff
hg qser
echo % qimport -e --name without --force
cp .hg/patches/this-name-is-better .hg/patches/3.diff
hg qimport -e --name this-name-is-better 3.diff
hg qser
echo % qimport -e --name with --force
hg qimport --force -e --name this-name-is-better 3.diff
hg qser