Merge branch 'km/mergetool-vimdiff-layout-fallback'
Variants of vimdiff learned to honor mergetool.<variant>.layout settings. * km/mergetool-vimdiff-layout-fallback: mergetools: vimdiff: use correct tool's name when reading mergetool config
This commit is contained in:
@ -45,14 +45,21 @@ mergetool.meld.useAutoMerge::
|
||||
value of `false` avoids using `--auto-merge` altogether, and is the
|
||||
default value.
|
||||
|
||||
mergetool.vimdiff.layout::
|
||||
The vimdiff backend uses this variable to control how its split
|
||||
windows appear. Applies even if you are using Neovim (`nvim`) or
|
||||
gVim (`gvim`) as the merge tool. See BACKEND SPECIFIC HINTS section
|
||||
ifndef::git-mergetool[]
|
||||
in linkgit:git-mergetool[1].
|
||||
mergetool.<vimdiff variant>.layout::
|
||||
Configure the split window layout for vimdiff's `<variant>`, which is any of `vimdiff`,
|
||||
`nvimdiff`, `gvimdiff`.
|
||||
Upon launching `git mergetool` with `--tool=<variant>` (or without `--tool`
|
||||
if `merge.tool` is configured as `<variant>`), Git will consult
|
||||
`mergetool.<variant>.layout` to determine the tool's layout. If the
|
||||
variant-specific configuration is not available, `vimdiff`'s is used as
|
||||
fallback. If that too is not available, a default layout with 4 windows
|
||||
will be used. To configure the layout, see the `BACKEND SPECIFIC HINTS`
|
||||
ifdef::git-mergetool[]
|
||||
section.
|
||||
endif::[]
|
||||
ifndef::git-mergetool[]
|
||||
section in linkgit:git-mergetool[1].
|
||||
endif::[]
|
||||
for details.
|
||||
|
||||
mergetool.hideResolved::
|
||||
During a merge, Git will automatically resolve as many conflicts as
|
||||
|
||||
@ -177,7 +177,8 @@ Instead of `--tool=vimdiff`, you can also use one of these other variants:
|
||||
|
||||
When using these variants, in order to specify a custom layout you will have to
|
||||
set configuration variables `mergetool.gvimdiff.layout` and
|
||||
`mergetool.nvimdiff.layout` instead of `mergetool.vimdiff.layout`
|
||||
`mergetool.nvimdiff.layout` instead of `mergetool.vimdiff.layout` (though the
|
||||
latter will be used as fallback if the variant-specific one is not set).
|
||||
|
||||
In addition, for backwards compatibility with previous Git versions, you can
|
||||
also append `1`, `2` or `3` to either `vimdiff` or any of the variants (ex:
|
||||
|
||||
@ -371,9 +371,17 @@ diff_cmd_help () {
|
||||
|
||||
|
||||
merge_cmd () {
|
||||
layout=$(git config mergetool.vimdiff.layout)
|
||||
TOOL=$1
|
||||
|
||||
case "$1" in
|
||||
layout=$(git config "mergetool.$TOOL.layout")
|
||||
|
||||
# backward compatibility:
|
||||
if test -z "$layout"
|
||||
then
|
||||
layout=$(git config mergetool.vimdiff.layout)
|
||||
fi
|
||||
|
||||
case "$TOOL" in
|
||||
*vimdiff)
|
||||
if test -z "$layout"
|
||||
then
|
||||
|
||||
Reference in New Issue
Block a user