diff options
author | David Aguilar <davvid@gmail.com> | 2016-11-29 01:38:07 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-11-29 10:54:03 -0800 |
commit | 7c10605d2ccf499af6136e993cf248892be39168 (patch) | |
tree | fd2c42ea696c365423d767225278d8cd8c49b516 /mergetools/diffmerge | |
parent | ac84098b7e32406a982ac01cc76a663d5605224b (diff) | |
download | git-7c10605d2ccf499af6136e993cf248892be39168.tar.gz git-7c10605d2ccf499af6136e993cf248892be39168.tar.xz |
mergetool: honor mergetool.$tool.trustExitCode for built-in tools
Built-in merge tools contain a hard-coded assumption about
whether or not a tool's exit code can be trusted to determine
the success or failure of a merge. Tools whose exit codes are
not trusted contain calls to check_unchanged() in their
merge_cmd() functions.
A problem with this is that the trustExitCode configuration is
not honored for built-in tools.
Teach built-in tools to honor the trustExitCode configuration.
Extend run_merge_cmd() so that it is responsible for calling
check_unchanged() when a tool's exit code cannot be trusted.
Remove check_unchanged() calls from scriptlets since they are no
longer responsible for calling it.
When no configuration is present, exit_code_trustable() is
checked to see whether the exit code should be trusted.
The default implementation returns false.
Tools whose exit codes can be trusted override
exit_code_trustable() to true.
Reported-by: Dun Peal <dunpealer@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'mergetools/diffmerge')
-rw-r--r-- | mergetools/diffmerge | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mergetools/diffmerge b/mergetools/diffmerge index f138cb4e7..9b6355b98 100644 --- a/mergetools/diffmerge +++ b/mergetools/diffmerge @@ -12,3 +12,7 @@ merge_cmd () { --result="$MERGED" "$LOCAL" "$REMOTE" fi } + +exit_code_trustable () { + true +} |