l10n: git.pot: v2.13.0 round 1 (96 new, 37 removed)
[gitweb.git] / mergetools / meld
index 73d70ae28ad1e6a5b38e051442e08c26c074bb22..bc178e88827a1a0558e9fbee1a6f18f6ede83df1 100644 (file)
@@ -3,7 +3,34 @@ diff_cmd () {
 }
 
 merge_cmd () {
-       touch "$BACKUP"
-       "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE"
-       check_unchanged
+       if test -z "${meld_has_output_option:+set}"
+       then
+               check_meld_for_output_version
+       fi
+
+       if test "$meld_has_output_option" = true
+       then
+               "$merge_tool_path" --output "$MERGED" \
+                       "$LOCAL" "$BASE" "$REMOTE"
+       else
+               "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE"
+       fi
+}
+
+# Check whether we should use 'meld --output <file>'
+check_meld_for_output_version () {
+       meld_path="$(git config mergetool.meld.path)"
+       meld_path="${meld_path:-meld}"
+
+       if meld_has_output_option=$(git config --bool mergetool.meld.hasOutput)
+       then
+               : use configured value
+       elif "$meld_path" --help 2>&1 |
+               grep -e '--output=' -e '\[OPTION\.\.\.\]' >/dev/null
+       then
+               : old ones mention --output and new ones just say OPTION...
+               meld_has_output_option=true
+       else
+               meld_has_output_option=false
+       fi
 }