sapling/tests/test-mq-qqueue
Yann E. MORIN 87f9cf5483 mq/qqueue: add --purge option to delete a queue and its patch dir
qqueue --delete only deletes the reference to the queue, and leaves
the associated patch directory behind. There is no Mercurial-way of
getting rid of that patch directory afterward.

This patch adds the --purge option to qqueue, that deletes the queue
from the list, and also removes the associated patch dir. If the queue
was non-existant, but the patch dir was, it is removed nonetheless.

This is to avoid manual intervention in the .hg directory.
2010-08-18 23:37:19 +02:00

102 lines
1.6 KiB
Bash
Executable File

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