Code

difftool: add various git-difftool tests
[git.git] / git-mergetool.sh
index 87fa88af5526c8e27b823a65ca15bee4085f8ef2..b4d2432f02097bf9d75557a28b55200a223554f7 100755 (executable)
@@ -214,12 +214,12 @@ merge_file () {
            ;;
        vimdiff)
            touch "$BACKUP"
-           "$merge_tool_path" -c "wincmd l" "$LOCAL" "$MERGED" "$REMOTE"
+           "$merge_tool_path" -d -c "wincmd l" "$LOCAL" "$MERGED" "$REMOTE"
            check_unchanged
            ;;
        gvimdiff)
            touch "$BACKUP"
-           "$merge_tool_path" -c "wincmd l" -f "$LOCAL" "$MERGED" "$REMOTE"
+           "$merge_tool_path" -d -c "wincmd l" -f "$LOCAL" "$MERGED" "$REMOTE"
            check_unchanged
            ;;
        xxdiff)
@@ -265,6 +265,16 @@ merge_file () {
            fi
            status=$?
            ;;
+       tortoisemerge)
+           if base_present ; then
+               touch "$BACKUP"
+               "$merge_tool_path" -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"
+               check_unchanged
+           else
+               echo "TortoiseMerge cannot be used without a base" 1>&2
+               status=1
+           fi
+           ;;
        *)
            if test -n "$merge_tool_cmd"; then
                if test "$merge_tool_trust_exit_code" = "false"; then
@@ -345,7 +355,7 @@ valid_custom_tool()
 
 valid_tool() {
        case "$1" in
-               kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | gvimdiff | ecmerge)
+               kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | gvimdiff | ecmerge | tortoisemerge)
                        ;; # happy
                *)
                        if ! valid_custom_tool "$1"; then
@@ -359,6 +369,12 @@ init_merge_tool_path() {
        merge_tool_path=`git config mergetool.$1.path`
        if test -z "$merge_tool_path" ; then
                case "$1" in
+                       vimdiff)
+                               merge_tool_path=vim
+                               ;;
+                       gvimdiff)
+                               merge_tool_path=gvim
+                               ;;
                        emerge)
                                merge_tool_path=emacs
                                ;;
@@ -398,9 +414,9 @@ fi
 if test -z "$merge_tool" ; then
     if test -n "$DISPLAY"; then
         if test -n "$GNOME_DESKTOP_SESSION_ID" ; then
-            merge_tool_candidates="meld kdiff3 tkdiff xxdiff gvimdiff"
+            merge_tool_candidates="meld kdiff3 tkdiff xxdiff tortoisemerge gvimdiff diffuse"
         else
-            merge_tool_candidates="kdiff3 tkdiff xxdiff meld gvimdiff"
+            merge_tool_candidates="kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff diffuse"
         fi
     fi
     if echo "${VISUAL:-$EDITOR}" | grep 'emacs' > /dev/null 2>&1; then