run_merge_tool() was not setting $status, which prevented the exit code for builtin tools from being forwarded to the caller. Capture the exit status and add a test to guarantee the behavior. Reported-by: Adria Farres <14farresa@xxxxxxxxx> Signed-off-by: David Aguilar <davvid@xxxxxxxxx> --- git-mergetool--lib.sh | 1 + t/t7800-difftool.sh | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh index a40d3df..2b66351 100644 --- a/git-mergetool--lib.sh +++ b/git-mergetool--lib.sh @@ -221,6 +221,7 @@ run_merge_tool () { else run_diff_cmd "$1" fi + status=$? return $status } diff --git a/t/t7800-difftool.sh b/t/t7800-difftool.sh index 69bde7a..ea35a02 100755 --- a/t/t7800-difftool.sh +++ b/t/t7800-difftool.sh @@ -86,6 +86,11 @@ test_expect_success PERL 'difftool forwards exit code with --trust-exit-code' ' test_must_fail git difftool -y --trust-exit-code -t error branch ' +test_expect_success PERL 'difftool forwards exit code with --trust-exit-code for built-ins' ' + test_config difftool.vimdiff.path false && + test_must_fail git difftool -y --trust-exit-code -t vimdiff branch +' + test_expect_success PERL 'difftool honors difftool.trustExitCode = true' ' test_config difftool.error.cmd false && test_config difftool.trustExitCode true && -- 2.2.0.rc1.23.gf570943.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html