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
hg init foo
cd foo
echo a > a
hg ci -qAm a
echo %% default queue
hg qqueue
echo b > a
hg qnew -fgDU somestuff
echo %% applied patches in default queue
hg qap
echo %% try to change patch \(create succeeds, switch fails\)
hg qqueue foo --create
hg qqueue
echo %% empty default queue
hg qpop
echo %% switch queue
hg qqueue foo
hg qqueue
echo %% list queues, quiet
hg qqueue --quiet
echo %% fail creating queue with already existing name
hg qqueue --create foo
hg qqueue
echo %% create new queue for rename
hg qqueue --create bar
hg qqueue
echo %% rename queue, same name
hg qqueue --rename bar
echo %% rename queue to existing
hg qqueue --rename foo
echo %% rename queue
hg qqueue --rename buz
hg qqueue
echo %% switch back to previous queue
hg qqueue foo
hg qqueue --delete buz
hg qqueue
echo %% create queue for purge
hg qqueue --create purge-me
hg qqueue
echo %% create patch for purge
hg qnew patch-purge-me
ls -1d .hg/patches-purge-me 2>/dev/null || true
hg qpop -a
echo %% purge queue
hg qqueue foo
hg qqueue --purge purge-me
hg qqueue
ls -1d .hg/patches-purge-me 2>/dev/null || true
echo %% unapplied patches
hg qun
echo c > a
hg qnew -fgDU otherstuff
echo %% fail switching back
hg qqueue patches
echo %% fail deleting current
hg qqueue foo --delete
echo %% switch back and delete foo
hg qpop -a
hg qqueue patches
hg qqueue foo --delete
hg qqueue
echo %% tricky cases
hg qqueue store --create
hg qnew journal
hg qqueue
hg qpop -a
hg qqueue patches
hg qun
echo %% invalid names
hg qqueue test/../../bar --create
hg qqueue . --create
cd ..