mirror of
https://github.com/git/git.git
synced 2026-01-11 13:23:12 +09:00
mergetools: vimdiff: fix layout where REMOTE is the target
"mergetool.vimdiff.layout" is used to define the vim layout (ie. how
windows, tabs and buffers are physically organized) when resolving
conflicts.
For example, if we set it to this:
"(LOCAL,BASE,REMOTE)/MERGED"
...vim will open and show this layout:
------------------------------------------
| | | |
| LOCAL | BASE | REMOTE |
| | | |
------------------------------------------
| |
| MERGED |
| |
------------------------------------------
By default, whatever ends up been written to the "MERGED" window will
become the file which conflict we are resolving.
However, it is possible to use the "@" symbol to specify a different
one. For example, if we use this slightly different version of the
previously used string:
"(LOCAL,BASE,@REMOTE)/MERGED"
...then the user should proceed to edit the contents of the top right
window (instead of the bottom window) as *that* is what will become the
conflicts free file once vim is closed.
Before this commit, the "@" marker worked for all targets *except* for
"REMOTE". In other words, these worked as expected:
"(@LOCAL,BASE,REMOTE)/MERGED"
"(LOCAL,@BASE,REMOTE)/MERGED"
"(LOCAL,BASE,REMOTE)/@MERGED"
...but this didn't:
"(LOCAL,BASE,@REMOTE)/MERGED"
This commit fixes that.
Reported-by: kawarimidoll <kawarimidoll+git@gmail.com>
Suggested-by: D. Ben Knoble <ben.knoble@gmail.com>
Signed-off-by: Fernando Ramos <greenfoo@u92.eu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5c21db3a0d
commit
e2d74193c0
@ -305,6 +305,9 @@ gen_cmd () {
|
||||
elif echo "$LAYOUT" | grep @BASE >/dev/null
|
||||
then
|
||||
FINAL_TARGET="BASE"
|
||||
elif echo "$LAYOUT" | grep @REMOTE >/dev/null
|
||||
then
|
||||
FINAL_TARGET="REMOTE"
|
||||
else
|
||||
FINAL_TARGET="MERGED"
|
||||
fi
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user