Code

mergetool-lib: make the three-way diff the default for vim/gvim
authorDan McGee <dpmcgee@gmail.com>
Mon, 27 Sep 2010 15:19:09 +0000 (10:19 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 29 Sep 2010 20:09:48 +0000 (13:09 -0700)
The original vimdiff/gvimdiff configuration is now available by using
'vimdiff2' or 'gvimdiff2' as the preferred merge tool.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-mergetool--lib.sh

index b84ac582f957a4e77af32f6f6285fd5106219804..77d4aee20ee5b8b01f9a0e3d1f8dbc9f7fdf3eb9 100644 (file)
@@ -10,10 +10,10 @@ merge_mode() {
 
 translate_merge_tool_path () {
        case "$1" in
-       vimdiff)
+       vimdiff|vimdiff2)
                echo vim
                ;;
-       gvimdiff)
+       gvimdiff|gvimdiff2)
                echo gvim
                ;;
        emerge)
@@ -47,7 +47,8 @@ check_unchanged () {
 valid_tool () {
        case "$1" in
        kdiff3 | tkdiff | xxdiff | meld | opendiff | \
-       emerge | vimdiff | gvimdiff | ecmerge | diffuse | araxis | p4merge)
+       vimdiff | gvimdiff | vimdiff2 | gvimdiff2 | \
+       emerge | ecmerge | diffuse | araxis | p4merge)
                ;; # happy
        tortoisemerge)
                if ! merge_mode; then
@@ -185,6 +186,17 @@ run_merge_tool () {
                                "$LOCAL" "$REMOTE"
                fi
                ;;
+       vimdiff2|gvimdiff2)
+               if merge_mode; then
+                       touch "$BACKUP"
+                       "$merge_tool_path" -f -d -c "wincmd l" \
+                               "$LOCAL" "$MERGED" "$REMOTE"
+                       check_unchanged
+               else
+                       "$merge_tool_path" -f -d -c "wincmd l" \
+                               "$LOCAL" "$REMOTE"
+               fi
+               ;;
        xxdiff)
                if merge_mode; then
                        touch "$BACKUP"