about summary refs log tree commit diff
path: root/third_party/git/mergetools/vimdiff
diff options
context:
space:
mode:
authorVincent Ambo <Vincent Ambo>2020-01-11T23·36+0000
committerVincent Ambo <Vincent Ambo>2020-01-11T23·40+0000
commit7ef0d62730840ded097b524104cc0a0904591a63 (patch)
treea670f96103667aeca4789a95d94ca0dff550c4ce /third_party/git/mergetools/vimdiff
parent6a2a3007077818e24a3d56fc492ada9206a10cf0 (diff)
parent1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5 (diff)
merge(third_party/git): Merge squashed git subtree at v2.23.0 r/373
Merge commit '1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5' as 'third_party/git'
Diffstat (limited to 'third_party/git/mergetools/vimdiff')
-rw-r--r--third_party/git/mergetools/vimdiff48
1 files changed, 48 insertions, 0 deletions
diff --git a/third_party/git/mergetools/vimdiff b/third_party/git/mergetools/vimdiff
new file mode 100644
index 000000000000..10d86f3e1930
--- /dev/null
+++ b/third_party/git/mergetools/vimdiff
@@ -0,0 +1,48 @@
+diff_cmd () {
+	"$merge_tool_path" -R -f -d \
+		-c 'wincmd l' -c 'cd $GIT_PREFIX' "$LOCAL" "$REMOTE"
+}
+
+merge_cmd () {
+	case "$1" in
+	gvimdiff|vimdiff)
+		if $base_present
+		then
+			"$merge_tool_path" -f -d -c '4wincmd w | wincmd J' \
+				"$LOCAL" "$BASE" "$REMOTE" "$MERGED"
+		else
+			"$merge_tool_path" -f -d -c 'wincmd l' \
+				"$LOCAL" "$MERGED" "$REMOTE"
+		fi
+		;;
+	gvimdiff2|vimdiff2)
+		"$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
+}
+
+translate_merge_tool_path() {
+	case "$1" in
+	gvimdiff|gvimdiff2|gvimdiff3)
+		echo gvim
+		;;
+	vimdiff|vimdiff2|vimdiff3)
+		echo vim
+		;;
+	esac
+}
+
+exit_code_trustable () {
+	true
+}