diff options
author | David Aguilar <davvid@gmail.com> | 2011-08-19 02:14:45 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-08-19 10:52:16 -0700 |
commit | f61bd9c68a4ed81afcc1fbbf5b956e781d88b434 (patch) | |
tree | 6a9afd90a246d7e66f5d7ff4c6abdd853bc573ea /mergetools | |
parent | bc7a96a8965d4ce0651689301e1702a942dfb9f0 (diff) | |
download | git-f61bd9c68a4ed81afcc1fbbf5b956e781d88b434.tar.gz |
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>
Diffstat (limited to 'mergetools')
-rw-r--r-- | mergetools/meld | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/mergetools/meld b/mergetools/meld index 73d70ae28a..eaa115ccb7 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 +} |