Teach git mergetool to use custom commands defined at config time
authorCharles Bailey <charles@hashpling.org>
Thu, 21 Feb 2008 23:31:12 +0000 (23:31 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 5 Mar 2008 20:07:04 +0000 (12:07 -0800)
commit964473a0429f625d019c69ab55644540174acf85
tree6ac82242299008b623677665cee2fce8bb7e0a39
parentb3ea27e4de24c7006969f493ba6bfbbc5b572d80
Teach git mergetool to use custom commands defined at config time

Currently git mergetool is restricted to a set of commands defined
in the script. You can subvert the mergetool.<tool>.path to force
git mergetool to use a different command, but if you have a command
whose invocation syntax does not match one of the current tools then
you would have to write a wrapper script for it.

This patch adds two git config variable patterns which allow a more
flexible choice of merge tool.

If you run git mergetool with -t/--tool or the merge.tool config
variable set to an unrecognized tool then git mergetool will query the
mergetool.<tool>.cmd config variable. If this variable exists, then git
mergetool will treat the specified tool as a custom command and will use
a shell eval to run the command with the documented shell variables set.

mergetool.<tool>.trustExitCode can be used to indicate that the exit
code of the custom command can be used to determine the success of the
merge.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
git-mergetool.sh