[PATCH] mergetools: add vimdiff3 mode
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- Apr 21, 2014, 00:24 UTC
- Message-ID
- <1398039860-31420-1-git-send-email-felipe.contreras@gmail.com>
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.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> ---
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/vimdiff3
diff --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 ;; esac diff --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