merge: introduce tool.check parameter
tool.check is a list of check options, and can be used in place of
tool.checkchanged and tool.checkconflicts:
Equivalences:
tool.checkchanged = yes
tool.checkconflicts = no
tool.check = changed
tool.checkchanged = no
tool.checkconflicts = yes
tool.check = conflicts
tool.checkchanged = yes
tool.checkconflicts = yes
tool.check = changed, conflicts
Add _toollist() wrapper for ui.configlist() to implement this consistently.
checkchanged and checkconflicts are still supported, but check is
preferred for implementing new check options.
#!/bin/sh
hg init
echo a > a
hg ci -Amadd # 0
chmod +x a
hg ci -mexecutable # 1
hg up 0
rm a
ln -s symlink a
hg ci -msymlink # 2
hg merge --debug
echo % symlink is local parent, executable is other
if [ -h a ]; then
echo a is a symlink
$TESTDIR/readlink.py a
elif [ -x a ]; then
echo a is executable
else
echo "a has no flags (default for conflicts)"
fi
hg update -C 1
hg merge --debug
echo % symlink is other parent, executable is local
if [ -h a ]; then
echo a is a symlink
$TESTDIR/readlink.py a
elif [ -x a ]; then
echo a is executable
else
echo "a has no flags (default for conflicts)"
fi