From 99474b6340dbcbe58f6c256fdee231cbadb060f4 Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Fri, 14 Nov 2014 13:33:55 -0800 Subject: [PATCH] difftool: honor --trust-exit-code for builtin tools 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@gmail.com> Signed-off-by: David Aguilar Signed-off-by: Junio C Hamano --- 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 c45a020301..cce4f8c494 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 69bde7aa28..ea35a0241c 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 &&