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 <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/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
;;
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