Re: [PATCH] mergetools: add vimdiff3 mode
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:00:46
David Aguilar [off-list ref] writes:
On Sun, Apr 20, 2014 at 07:24:20PM -0500, Felipe Contreras wrote:quoted
It's similar to the default, except that the other windows are hidden. This ensures that removed/added colors are still visible on the main merge window, but the other windows not visible. Specially useful with merge.conflictstyle=diff3.This is a nice addition, thanks. FWIW, Acked-by: David Aguilar <redacted>
Thanks for an explicit Ack. I personally think a new backend vimdiff3 can go in 2.0 (though we are -rc0), as we can read from the patch below, it is very unlikely to break anything else (I am not sure what these 'hid' are in the implementation, but even if we had any breakage there, it would not affect anybody other than vimdiff3 backend).
quoted
Signed-off-by: Felipe Contreras <redacted> --- How a conflict looks: http://felipec.org/vimdiff3-conflict.png How it looks resolved: http://felipec.org/vimdiff3-resolved.png mergetools/gvimdiff3 | 1 + mergetools/vimdiff | 14 ++++++++++++-- mergetools/vimdiff3 | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 mergetools/gvimdiff3 create mode 100644 mergetools/vimdiff3diff --git a/mergetools/gvimdiff3 b/mergetools/gvimdiff3 new file mode 100644 index 0000000..04a5bb0 --- /dev/null +++ b/mergetools/gvimdiff3@@ -0,0 +1 @@ +. "$MERGE_TOOLS_DIR/vimdiff"diff --git a/mergetools/vimdiff b/mergetools/vimdiff index 39d0327..1ddfbfc 100644 --- a/mergetools/vimdiff +++ b/mergetools/vimdiff@@ -20,16 +20,26 @@ merge_cmd () { "$merge_tool_path" -f -d -c 'wincmd l' \ "$LOCAL" "$MERGED" "$REMOTE" ;; + gvimdiff3|vimdiff3) + if $base_present + then + "$merge_tool_path" -f -d -c 'hid | hid | hid' \ + "$LOCAL" "$REMOTE" "$BASE" "$MERGED" + else + "$merge_tool_path" -f -d -c 'hid | hid' \ + "$LOCAL" "$REMOTE" "$MERGED" + fi + ;; esac check_unchanged } translate_merge_tool_path() { case "$1" in - gvimdiff|gvimdiff2) + gvimdiff|gvimdiff2|gvimdiff3) echo gvim ;; - vimdiff|vimdiff2) + vimdiff|vimdiff2|vimdiff3) echo vim ;; esacdiff --git a/mergetools/vimdiff3 b/mergetools/vimdiff3 new file mode 100644 index 0000000..04a5bb0 --- /dev/null +++ b/mergetools/vimdiff3@@ -0,0 +1 @@ +. "$MERGE_TOOLS_DIR/vimdiff"-- 1.9.2+fc1.1.g5c924db