mergetools/meld: make usage of --output
configurable and more robust
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>
This commit is contained in:
parent
3c2dc76f01
commit
b12d04503b
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user