view tests/test-mq-qimport @ 12403:ba8850911703

test-serve: fix test for binding to low named port on solaris Solaris do not know the service called http, so we use echo instead. Trying to define KILLQUIETLY when running the hgserve function didn't set the value within the function. Now we set the variable before calling the function.
author Mads Kiilerich <mads@kiilerich.com>
date Sat, 25 Sep 2010 02:35:32 +0200
parents 84fb29f5e0d2
children
line wrap: on
line source

#!/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