mergetool--lib: Allow custom commands to override built-ins
authorDavid Aguilar <davvid@gmail.com>
Tue, 25 Sep 2012 07:48:11 +0000 (00:48 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 25 Sep 2012 16:04:39 +0000 (09:04 -0700)
commita427ef7acc9d932d1c203dd2fae67f51c4b1d1e8
treeec1f72cc31d37983ae461a9211c32f806fb381d9
parent889d35899ba64640e47798681ecb34a4be043bad
mergetool--lib: Allow custom commands to override built-ins

Allow users to override the default commands provided by the
mergetools/* scriptlets.

Users occasionally run into problems where they expect to be
able to override the built-in tool names.  The documentation
does not explicitly mention that built-ins cannot be overridden,
so it's easy to assume that it should work.

Lift this restriction so that built-in tools are handled the
same way as user-configured tools.  Add tests to guarantee this
behavior.

A nice benefit of this change is that it protects users from
having future versions of git trump their custom configuration
with a new built-in tool.

C.f.:

http://stackoverflow.com/questions/7435002/mergetool-from-gitconfig-being-ignored
http://thread.gmane.org/gmane.comp.version-control.msysgit/13188
http://thread.gmane.org/gmane.comp.version-control.git/148267

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-mergetool--lib.sh
mergetools/defaults
t/t7610-mergetool.sh
t/t7800-difftool.sh