]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git-difftool--helper.sh: exit upon initialize_merge_tool errors
authorPhilippe Blain <levraiphilippeblain@gmail.com>
Fri, 22 Nov 2024 19:50:22 +0000 (19:50 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 25 Nov 2024 02:59:19 +0000 (11:59 +0900)
Since the introduction of 'initialize_merge_tool' in de8dafbada
(mergetool: break setup_tool out into separate initialization function,
2021-02-09), any errors from this function are ignored in
git-difftool--helper.sh::launch_merge_tool, which is not the case for
its call in git-mergetool.sh::merge_file.

Despite the in-code comment, initialize_merge_tool (via its call to
setup_tool) does different checks than run_merge_tool, so it makes sense
to abort early if it encounters errors. Add exit calls if
initialize_merge_tool fails.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-difftool--helper.sh

index dd0c9a5b7f2b078205000f3051df0bade8b0cfab..d32e47cc09eab01c3cdae13568f6f0349be9bb0b 100755 (executable)
@@ -61,9 +61,7 @@ launch_merge_tool () {
                export BASE
                eval $GIT_DIFFTOOL_EXTCMD '"$LOCAL"' '"$REMOTE"'
        else
-               initialize_merge_tool "$merge_tool"
-               # ignore the error from the above --- run_merge_tool
-               # will diagnose unusable tool by itself
+               initialize_merge_tool "$merge_tool" || exit 1
                run_merge_tool "$merge_tool"
        fi
 }
@@ -87,9 +85,7 @@ if test -n "$GIT_DIFFTOOL_DIRDIFF"
 then
        LOCAL="$1"
        REMOTE="$2"
-       initialize_merge_tool "$merge_tool"
-       # ignore the error from the above --- run_merge_tool
-       # will diagnose unusable tool by itself
+       initialize_merge_tool "$merge_tool" || exit 1
        run_merge_tool "$merge_tool" false
 
        status=$?