mq: extend support for the --mq argument to extension commands
This allows commands like `purge' to accept the --mq option.
#! /bin/sh
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
mkdir webdir
cd webdir
hg init a
hg --cwd a qinit -c
echo a > a/a
hg --cwd a ci -A -m a
echo b > a/b
hg --cwd a addremove
hg --cwd a qnew -f b.patch
hg --cwd a qcommit -m b.patch
hg --cwd a log --template "{desc}\n"
hg --cwd a/.hg/patches log --template "{desc}\n"
root=`pwd`
cd ..
echo % test with recursive collection
cat > collections.conf <<EOF
[paths]
/=$root/**
EOF
hg serve -p $HGPORT -d --pid-file=hg.pid --webdir-conf collections.conf \
-A access-paths.log -E error-paths-1.log
cat hg.pid >> $DAEMON_PIDS
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?style=raw'
hg qclone http://localhost:$HGPORT/a b
hg --cwd b log --template "{desc}\n"
hg --cwd b qpush -a
hg --cwd b log --template "{desc}\n"
echo % test with normal collection
cat > collections1.conf <<EOF
[paths]
/=$root/*
EOF
hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf collections1.conf \
-A access-paths.log -E error-paths-1.log
cat hg.pid >> $DAEMON_PIDS
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=raw'
hg qclone http://localhost:$HGPORT1/a c
hg --cwd c log --template "{desc}\n"
hg --cwd c qpush -a
hg --cwd c log --template "{desc}\n"
echo % test with old-style collection
cat > collections2.conf <<EOF
[collections]
$root=$root
EOF
hg serve -p $HGPORT2 -d --pid-file=hg.pid --webdir-conf collections2.conf \
-A access-paths.log -E error-paths-1.log
cat hg.pid >> $DAEMON_PIDS
"$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/?style=raw'
hg qclone http://localhost:$HGPORT2/a d
hg --cwd d log --template "{desc}\n"
hg --cwd d qpush -a
hg --cwd d log --template "{desc}\n"
echo '% test --mq works and uses correct repository config'
hg --cwd d outgoing --mq | sed "s|$HGPORT2|\$HGPORT2|"
hg --cwd d log --mq --template '{rev} {desc|firstline}\n'