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.
#!/bin/sh
# test basic functionality of url#rev syntax
hg init repo
cd repo
echo a > a
hg ci -qAm 'add a'
hg branch foo
echo >> a
hg ci -m 'change a'
cd ..
echo '% clone repo#foo'
hg clone 'repo#foo' clone
echo '% heads'
hg --cwd clone heads
echo '% parents'
hg --cwd clone parents
sed -e 's/default.*#/default = #/' clone/.hg/hgrc
echo
echo '% changing original repo'
cd repo
echo >> a
hg ci -m 'new head of branch foo'
hg up -qC default
echo bar > bar
hg ci -qAm 'add bar'
hg log
echo
echo '% outgoing'
hg -q outgoing '../clone#foo'
echo
echo '% push'
hg -q push '../clone#foo'
hg --cwd ../clone heads
cd ..
echo
echo '% rolling back'
cd clone
hg rollback
echo '% incoming'
hg -q incoming
echo '% pull'
hg -q pull
hg heads
echo
echo '% pull should not have updated'
hg parents -q
echo '% going back to the default branch'
hg up -C 0
hg parents
echo '% no new revs, no update'
hg pull -qu
hg parents -q
echo '% rollback'
hg rollback
hg up -C 0
hg parents -q
echo '% pull -u takes us back to branch foo'
hg pull -qu
hg parents
echo '% rollback'
hg rollback
hg up -C 0
echo '% parents'
hg parents -q
echo '% heads'
hg heads -q
echo '% pull -u -r otherrev url#rev updates to rev'
hg pull -qur default default
echo '% parents'
hg parents
echo '% heads'
hg heads