tests/test-mq-guards
author Vadim Gelfer <vadim.gelfer@gmail.com>
Thu, 10 Aug 2006 17:18:55 -0700
changeset 2850 851b07ec450c
parent 2844 582cbc4392cb
child 2990 61fcd9fac434
permissions -rwxr-xr-x
mq: apply patch is any posative guard matches this is like guards command from quilt package.

#!/bin/sh

HGRCPATH=$HGTMP/.hgrc; export HGRCPATH
echo "[extensions]" >> $HGTMP/.hgrc
echo "mq=" >> $HGTMP/.hgrc

hg init
hg qinit

echo x > x
hg ci -Ama

hg qnew a.patch
echo a > a
hg add a
hg qrefresh

hg qnew b.patch
echo b > b
hg add b
hg qrefresh

hg qnew c.patch
echo c > c
hg add c
hg qrefresh

hg qpop -a

echo % should fail
hg qguard +fail

hg qpush
echo % should guard a.patch
hg qguard +a
echo % should print +a
hg qguard
hg qpop

hg qguard a.patch
echo % should push b.patch
hg qpush

hg qpop
hg qselect a
echo % should push a.patch
hg qpush

hg qguard c.patch -a
echo % should print -a
hg qguard c.patch

echo % should skip c.patch
hg qpush -a

hg qguard -n c.patch
echo % should push c.patch
hg qpush -a

hg qpop -a
hg qselect -n
echo % should push all
hg qpush -a

hg qpop -a
hg qguard a.patch +1
hg qguard b.patch +2
hg qselect 1
echo % should push a.patch, not b.patch
hg qpush
hg qpush
hg qpop -a

hg qselect 2
echo % should push b.patch
hg qpush
hg qpop -a

hg qselect 1 2
echo % should push a.patch, b.patch
hg qpush
hg qpush
hg qpop -a

hg qguard a.patch +1 +2 -3
hg qselect 1 2 3
echo % list patches and guards
hg qguard -l
echo % list series
hg qseries -v
echo % list guards
hg qselect
echo % should push b.patch
hg qpush

hg qpush -a
hg qselect -n --reapply
echo % guards in series file: +1 +2 -3
hg qselect -s
echo % should show c.patch
hg qapplied