[PATCH v2 4/4] mergetools/meld: Use '--output' when available
- From
David Aguilar <davvid@gmail.com>
- Date
- Aug 19, 2011, 09:14 UTC
- Message-ID
- <20110819091444.GB18054@gmail.com>
- In-Reply-To
- <1313652227-48545-5-git-send-email-davvid@gmail.com>
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> --- 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