mergetools/meld: Use '--output' when available

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 <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

David Aguilar committed Aug 19, 2011 at 02:14 UTC f61bd9c68a4ed81afcc1fbbf5b956e781d88b434
1 file changed +24 -1
mergetools/meld
+24 -1
@@ -3,7 +3,30 @@ diff_cmd () {
3 }
4
5 merge_cmd () {
6 + if test -z "${meld_has_output_option:+set}"
7 + then
8 + check_meld_for_output_version
9 + fi
10 touch "$BACKUP"
7 - "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE"
11 + if test "$meld_has_output_option" = true
12 + then
13 + "$merge_tool_path" --output "$MERGED" \
14 + "$LOCAL" "$BASE" "$REMOTE"
15 + else
16 + "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE"
17 + fi
18 check_unchanged
19 }
20 +
21 +# Check whether 'meld --output <file>' is supported
22 +check_meld_for_output_version () {
23 + meld_path="$(git config mergetool.meld.path)"
24 + meld_path="${meld_path:-meld}"
25 +
26 + if "$meld_path" --output /dev/null --help >/dev/null 2>&1
27 + then
28 + meld_has_output_option=true
29 + else
30 + meld_has_output_option=false
31 + fi
32 +}