diff options
author | David Aguilar <davvid@gmail.com> | 2014-10-15 21:45:14 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-10-16 11:58:11 -0700 |
commit | b12d04503b0aba1f2d68b164b348cbf94bbe570b (patch) | |
tree | 375ed9642619d3b2715030f90484fffdfc916ca3 | |
parent | 3c2dc76f015b4d52ef02a08c59a4546d00b475e1 (diff) | |
download | git-b12d04503b0aba1f2d68b164b348cbf94bbe570b.tar.gz |
mergetools/meld: make usage of `--output` configurable and more robustda/mergetool-meld
Older versions of meld listed --output in `meld --help`.
Newer versions only mention `meld [OPTIONS...]`.
Improve the checks to catch these newer versions.
Add a `mergetool.meld.hasOutput` configuration to allow
overriding the heuristic.
Reported-by: Andrey Novoseltsev <novoselt@gmail.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | Documentation/config.txt | 9 | ||||
-rw-r--r-- | mergetools/meld | 9 |
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 |