[PATCH 1/2] mergetools: vimdiff: fix layout where REMOTE is the target
- From
Fernando Ramos <greenfoo@u92.eu>
- Date
- Mar 25, 2025, 22:23 UTC
- Message-ID
- <20250325222311.400748-2-greenfoo@u92.eu>
- In-Reply-To
- <20250325222311.400748-1-greenfoo@u92.eu>
"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> --- mergetools/vimdiff | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/mergetools/vimdiff b/mergetools/vimdiff index ffc9be86c8..0e3785d230 100644 --- a/mergetools/vimdiff +++ b/mergetools/vimdiff @@ -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
-- 2.49.0