summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-10-29 10:35:16 -0700
committerJunio C Hamano <gitster@pobox.com>2014-10-29 10:35:16 -0700
commit9db18387056c713eca8f53bff3bb409d23117f1d (patch)
treecc2563f48b170c298e5a79e84b8809d02f4db639
parentaf1b4e350f5f24e4fbc6f870c9e1552175b86b76 (diff)
parentb12d04503b0aba1f2d68b164b348cbf94bbe570b (diff)
downloadgit-9db18387056c713eca8f53bff3bb409d23117f1d.tar.gz
Merge branch 'da/mergetool-meld' into maint
* da/mergetool-meld: mergetools/meld: make usage of `--output` configurable and more robust
-rw-r--r--Documentation/config.txt9
-rw-r--r--mergetools/meld9
2 files changed, 16 insertions, 2 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt
index c55c22ab7b..382e12c69e 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1754,6 +1754,15 @@ mergetool.<tool>.trustExitCode::
if the file has been updated, otherwise the user is prompted to
indicate the success of the merge.
+mergetool.meld.hasOutput::
+ Older versions of `meld` do not support the `--output` option.
+ Git will attempt to detect whether `meld` supports `--output`
+ by inspecting the output of `meld --help`. Configuring
+ `mergetool.meld.hasOutput` will make Git skip these checks and
+ use the configured value instead. Setting `mergetool.meld.hasOutput`
+ to `true` tells Git to unconditionally use the `--output` option,
+ and `false` avoids using `--output`.
+
mergetool.keepBackup::
After performing a merge, the original file with conflict markers
can be saved as a file with a `.orig` extension. If this variable
diff --git a/mergetools/meld b/mergetools/meld
index cb672a5519..83ebdfb4c3 100644
--- a/mergetools/meld
+++ b/mergetools/meld
@@ -18,13 +18,18 @@ merge_cmd () {
check_unchanged
}
-# Check whether 'meld --output <file>' is supported
+# 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_path" --help 2>&1 | grep -e --output >/dev/null
+ 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