Add Code Compare v2.80.4 as a merge / diff tool for Windows
authorSebastian Schuberth <sschuberth@gmail.com>
Fri, 10 Aug 2012 08:21:06 +0000 (10:21 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 10 Aug 2012 15:08:08 +0000 (08:08 -0700)
Code Compare is a commercial file comparison tool for Windows, see

    http://www.devart.com/codecompare/

Version 2.80.4 added support for command line arguments preceded by a
dash instead of a slash. This is required for Git for Windows because
slashes in command line arguments get mangled with according to these
rules:

    http://www.mingw.org/wiki/Posix_path_conversion

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash
git-mergetool--lib.sh
mergetools/codecompare [new file with mode: 0644]

index 2e1b5e14b92fe61e02df94ab165c8aab6c06c9cb..820ac738c6032fc8787ff86d1617e0c29017d76e 100755 (executable)
@@ -1319,7 +1319,7 @@ _git_diff ()
 }
 
 __git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff
-                       tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3
+                       tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 codecompare
 "
 
 _git_difftool ()
index ed630b208a80a36d729b5074a39bc53df0cabd59..0bbfcb1440025427b5c9d6af83d8e96c3430aaca 100644 (file)
@@ -126,7 +126,7 @@ guess_merge_tool () {
                else
                        tools="opendiff kdiff3 tkdiff xxdiff meld $tools"
                fi
-               tools="$tools gvimdiff diffuse ecmerge p4merge araxis bc3"
+               tools="$tools gvimdiff diffuse ecmerge p4merge araxis bc3 codecompare"
        fi
        case "${VISUAL:-$EDITOR}" in
        *vim*)
diff --git a/mergetools/codecompare b/mergetools/codecompare
new file mode 100644 (file)
index 0000000..3f0486b
--- /dev/null
@@ -0,0 +1,25 @@
+diff_cmd () {
+       "$merge_tool_path" "$LOCAL" "$REMOTE"
+}
+
+merge_cmd () {
+       touch "$BACKUP"
+       if $base_present
+       then
+               "$merge_tool_path" -MF="$LOCAL" -TF="$REMOTE" -BF="$BASE" \
+                       -RF="$MERGED"
+       else
+               "$merge_tool_path" -MF="$LOCAL" -TF="$REMOTE" \
+                       -RF="$MERGED"
+       fi
+       check_unchanged
+}
+
+translate_merge_tool_path() {
+       if merge_mode
+       then
+               echo CodeMerge
+       else
+               echo CodeCompare
+       fi
+}