mq: new commands qselect, qguard
implement quilt-style guards for mq.
guards allow to control whether patch can be pushed.
if guard X is active and patch is guarded by +X (called "posative guard"),
patch can be pushed. if patch is guarded by -X (called "nagative guard"),
patch cannot be pushed and is skipped.
use qguard to set/list guards on patches. use qselect to set/list
active guards.
also "qseries -v" prints guarded patches with "G" now.
#!/bin/sh
#
mkdir t
cd t
hg init
echo 0 > a
echo 0 > b
echo 0 > t.h
mkdir t
echo 0 > t/x
hg ci -A -m m -d "1000000 0"
touch nottracked
hg locate a
hg locate NONEXISTENT
hg locate
hg rm a
hg ci -m m -d "1000000 0"
hg locate a
hg locate NONEXISTENT
hg locate
hg locate -r 0 a
hg locate -r 0 NONEXISTENT
hg locate -r 0
echo % -I/-X with relative path should work
cd t
hg locate
hg locate -I ../t
# test issue294
cd ..
rm -rf t
hg locate t