aboutsummaryrefslogtreecommitdiffstats
path: root/mergetools/vimdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-02-07 14:41:57 -0800
committerJunio C Hamano <gitster@pobox.com>2013-02-07 14:41:57 -0800
commit55f56fee0765820d5c841e47b22f33f5a7253e16 (patch)
tree77f46ce5ac859508725ae00d0f60b95b7799b671 /mergetools/vimdiff
parentMerge branch 'jk/doc-makefile-cleanup' (diff)
parentmergetools: simplify how we handle "vim" and "defaults" (diff)
downloadgit-55f56fee0765820d5c841e47b22f33f5a7253e16.tar.gz
git-55f56fee0765820d5c841e47b22f33f5a7253e16.zip
Merge branch 'jk/mergetool'
Cleans up mergetool/difftool combo. * jk/mergetool: mergetools: simplify how we handle "vim" and "defaults" mergetool--lib: don't call "exit" in setup_tool mergetool--lib: improve show_tool_help() output mergetools/vim: remove redundant diff command git-difftool: use git-mergetool--lib for "--tool-help" git-mergetool: don't hardcode 'mergetool' in show_tool_help git-mergetool: remove redundant assignment git-mergetool: move show_tool_help to mergetool--lib
Diffstat (limited to 'mergetools/vimdiff')
-rw-r--r--mergetools/vimdiff36
1 files changed, 36 insertions, 0 deletions
diff --git a/mergetools/vimdiff b/mergetools/vimdiff
new file mode 100644
index 0000000000..39d032771b
--- /dev/null
+++ b/mergetools/vimdiff
@@ -0,0 +1,36 @@
+diff_cmd () {
+ "$merge_tool_path" -R -f -d \
+ -c 'wincmd l' -c 'cd $GIT_PREFIX' "$LOCAL" "$REMOTE"
+}
+
+merge_cmd () {
+ touch "$BACKUP"
+ case "$1" in
+ gvimdiff|vimdiff)
+ if $base_present
+ then
+ "$merge_tool_path" -f -d -c 'wincmd J' \
+ "$MERGED" "$LOCAL" "$BASE" "$REMOTE"
+ 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"
+ ;;
+ esac
+ check_unchanged
+}
+
+translate_merge_tool_path() {
+ case "$1" in
+ gvimdiff|gvimdiff2)
+ echo gvim
+ ;;
+ vimdiff|vimdiff2)
+ echo vim
+ ;;
+ esac
+}