Modify qpush/qpop idempotent operations to return success
Modify qpush/qpop such that idempotent instances of the operations
return success. That is, repeated qpush -a, qpop -a, qpush patch-name
or qpop patch-name will return success. The end goal of each of these
operations is to reach a particular state. Whether or not the patches
were already applied does not affect that state or operation status.
Likewise, be careful to retain the error status on a qpush/qpop
without arguments when the end/beginning of the series has been
reached.
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
hg init a
cd a
echo 'base' > base
hg ci -Ambase -d '1 0'
hg qnew -mmqbase mqbase
hg qrename mqbase renamed
mkdir .hg/patches/foo
hg qrename renamed foo
hg qseries
ls .hg/patches/foo
mkdir .hg/patches/bar
hg qrename foo/renamed bar
hg qseries
ls .hg/patches/bar
hg qrename bar/renamed baz
hg qseries
ls .hg/patches/baz