diff options
author | David Aguilar <davvid@gmail.com> | 2012-09-25 00:48:11 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-09-25 09:04:39 -0700 |
commit | a427ef7acc9d932d1c203dd2fae67f51c4b1d1e8 (patch) | |
tree | ec1f72cc31d37983ae461a9211c32f806fb381d9 /mergetools | |
parent | 889d35899ba64640e47798681ecb34a4be043bad (diff) | |
download | git-a427ef7acc9d932d1c203dd2fae67f51c4b1d1e8.tar.gz git-a427ef7acc9d932d1c203dd2fae67f51c4b1d1e8.tar.xz |
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>
Diffstat (limited to 'mergetools')
-rw-r--r-- | mergetools/defaults | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/mergetools/defaults b/mergetools/defaults index 1d8f2a3dd..21e63ecc3 100644 --- a/mergetools/defaults +++ b/mergetools/defaults @@ -8,36 +8,12 @@ can_diff () { } diff_cmd () { - merge_tool_cmd="$(get_merge_tool_cmd "$1")" - if test -z "$merge_tool_cmd" - then - status=1 - break - fi - ( eval $merge_tool_cmd ) - status=$? + status=1 return $status } merge_cmd () { - merge_tool_cmd="$(get_merge_tool_cmd "$1")" - if test -z "$merge_tool_cmd" - then - status=1 - break - fi - trust_exit_code="$(git config --bool \ - mergetool."$1".trustExitCode || echo false)" - if test "$trust_exit_code" = "false" - then - touch "$BACKUP" - ( eval $merge_tool_cmd ) - status=$? - check_unchanged - else - ( eval $merge_tool_cmd ) - status=$? - fi + status=1 return $status } |