[PATCH v2 4/4] mergetools/meld: Use '--output' when available
From: David Aguilar <hidden>
Date: 2016-06-15 22:51:50
Subsystem:
the rest · Maintainer:
Linus Torvalds
meld 1.5.0 and newer allow the output file to be specified when merging multiple files. Check whether the meld command supports '--output' and use it when available. Signed-off-by: David Aguilar <redacted> --- mergetools/meld | 25 ++++++++++++++++++++++++- 1 files changed, 24 insertions(+), 1 deletions(-) Changes since v1 with help from Jonathan Nieder: Use $LOCAL $BASE REMOTE when calling meld. Avoid shell portability issues by using the return status. of --output instead of parsing --version.
diff --git a/mergetools/meld b/mergetools/meld
index 73d70ae..eaa115c 100644
--- a/mergetools/meld
+++ b/mergetools/meld@@ -3,7 +3,30 @@ diff_cmd () { } merge_cmd () { + if test -z "${meld_has_output_option:+set}" + then + check_meld_for_output_version + fi touch "$BACKUP" - "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE" + 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_unchanged } + +# Check whether 'meld --output <file>' is supported +check_meld_for_output_version () { + meld_path="$(git config mergetool.meld.path)" + meld_path="${meld_path:-meld}" + + if "$meld_path" --output /dev/null --help >/dev/null 2>&1 + then + meld_has_output_option=true + else + meld_has_output_option=false + fi +}
--
1.7.6.553.g1899