summaryrefslogtreecommitdiff
path: root/mergetools/vimdiff
diff options
context:
space:
mode:
authorDavid Aguilar <davvid@gmail.com>2013-01-27 00:46:12 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-01-29 03:00:38 (GMT)
commit073678b8e6324a155fa99f40eee0637941a70a34 (patch)
treef9bdd837ffdfb50efabf58a73769477202e70b50 /mergetools/vimdiff
parent62957bea0c7637ae1db4452fc165c59d9408585b (diff)
downloadgit-073678b8e6324a155fa99f40eee0637941a70a34.zip
git-073678b8e6324a155fa99f40eee0637941a70a34.tar.gz
git-073678b8e6324a155fa99f40eee0637941a70a34.tar.bz2
mergetools: simplify how we handle "vim" and "defaults"
Remove the exceptions for "vim" and "defaults" in the mergetool library so that every filename in mergetools/ matches 1:1 with the name of a valid built-in tool. Define the trivial fallback definition of shell functions in-line in git-mergetool-lib script, instead of dot-sourcing them from another file. The result is much easier to follow. [jc: squashed in an update from John Keeping as well] Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
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 0000000..39d0327
--- /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
+}