]> asedeno.scripts.mit.edu Git - git.git/blobdiff - git-mergetool.sh
Merge branch 'maint'
[git.git] / git-mergetool.sh
index 4f89cbe8e6ce86175a56b400bdcc34576db34d28..a68b40386bde1c47c33a19514ec3a22db7fb0e4b 100755 (executable)
@@ -250,6 +250,16 @@ merge_file () {
            check_unchanged
            save_backup
            ;;
+       ecmerge)
+           touch "$BACKUP"
+           if base_present; then
+               "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" --mode=merge3 --to="$path"
+           else
+               "$merge_tool_path" "$LOCAL" "$REMOTE" --mode=merge2 --to="$path"
+           fi
+           check_unchanged
+           save_backup
+           ;;
        emerge)
            if base_present ; then
                "$merge_tool_path" -f emerge-files-with-ancestor-command "$LOCAL" "$REMOTE" "$BASE" "$(basename "$path")"
@@ -299,7 +309,7 @@ done
 
 valid_tool() {
        case "$1" in
-               kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | gvimdiff)
+               kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | gvimdiff | ecmerge)
                        ;; # happy
                *)
                        return 1
@@ -324,7 +334,7 @@ init_merge_tool_path() {
 
 if test -z "$merge_tool"; then
     merge_tool=`git config merge.tool`
-    if ! valid_tool "$merge_tool"; then
+    if test -n "$merge_tool" && ! valid_tool "$merge_tool"; then
            echo >&2 "git config option merge.tool set to unknown tool: $merge_tool"
            echo >&2 "Resetting to default..."
            unset merge_tool