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
hg init
echo foo > a
hg add a
hg commit -m "1" -d "1000000 0"
hg verify
chmod -r .hg/data/a.i
hg verify 2>/dev/null || echo verify failed
chmod +r .hg/data/a.i
hg verify 2>/dev/null || echo verify failed
chmod -w .hg/data/a.i
echo barber > a
hg commit -m "2" -d "1000000 0" 2>/dev/null || echo commit failed