Merge branch 'da/mergetool-meld' into maint

* da/mergetool-meld:
  mergetools/meld: make usage of `--output` configurable and more robust
This commit is contained in:
Junio C Hamano 2014-10-29 10:35:16 -07:00
commit 9db1838705
2 changed files with 16 additions and 2 deletions

View File

@ -1754,6 +1754,15 @@ mergetool.<tool>.trustExitCode::
if the file has been updated, otherwise the user is prompted to if the file has been updated, otherwise the user is prompted to
indicate the success of the merge. 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:: mergetool.keepBackup::
After performing a merge, the original file with conflict markers After performing a merge, the original file with conflict markers
can be saved as a file with a `.orig` extension. If this variable can be saved as a file with a `.orig` extension. If this variable

View File

@ -18,13 +18,18 @@ merge_cmd () {
check_unchanged check_unchanged
} }
# Check whether 'meld --output <file>' is supported # Check whether we should use 'meld --output <file>'
check_meld_for_output_version () { check_meld_for_output_version () {
meld_path="$(git config mergetool.meld.path)" meld_path="$(git config mergetool.meld.path)"
meld_path="${meld_path:-meld}" 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 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 meld_has_output_option=true
else else
meld_has_output_option=false meld_has_output_option=false