Code

difftool/mergetool: add diffuse as merge and diff tool
authorSebastian Pipping <sebastian@pipping.org>
Mon, 6 Apr 2009 08:31:23 +0000 (01:31 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 8 Apr 2009 05:19:56 +0000 (22:19 -0700)
This adds diffuse as a built-in merge tool.

Signed-off-by: Sebastian Pipping <sebastian@pipping.org>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-mergetool.txt
Documentation/merge-config.txt
contrib/completion/git-completion.bash
contrib/difftool/git-difftool-helper
contrib/difftool/git-difftool.txt
git-mergetool.sh

index 5edac4d267bdc33fd958b1e84a3768433fbfe58d..ff9700d17a333f50d6509bc14a0bd81fad876d3b 100644 (file)
@@ -27,7 +27,7 @@ OPTIONS
        Use the merge resolution program specified by <tool>.
        Valid merge tools are:
        kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
-       tortoisemerge and opendiff
+       diffuse, tortoisemerge and opendiff
 +
 If a merge resolution program is not specified, 'git-mergetool'
 will use the configuration variable `merge.tool`.  If the
index 8c10f66702022b460a7c3ada8daa83f51b1f1e90..4832bc75e2604c997e004018023e3b93cb394b87 100644 (file)
@@ -23,7 +23,7 @@ merge.tool::
        Controls which merge resolution program is used by
        linkgit:git-mergetool[1].  Valid built-in values are: "kdiff3",
        "tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff",
-       "ecmerge", tortoisemerge and
+       "diffuse", "ecmerge", "tortoisemerge", and
        "opendiff".  Any other value is treated is custom merge tool
        and there must be a corresponding mergetool.<tool>.cmd option.
 
index d3d8203171a3c7c221399dd6d79c8429c5006bcc..e099ed48ff3a37789c893ef14d3c21cbbe169835 100755 (executable)
@@ -1174,7 +1174,8 @@ _git_mergetool ()
        --tool=*)
                __gitcomp "
                        kdiff3 tkdiff meld xxdiff emerge
-                       vimdiff gvimdiff ecmerge opendiff
+                       vimdiff gvimdiff ecmerge diffuse
+                       opendiff
                        " "" "${cur##--tool=}"
                return
                ;;
index e74a2747b64fdedb36ae14cdf2fa4285a2237388..4b0daec5a7d0d90c18967974b87afbcc5fb6dc8b 100755 (executable)
@@ -1,7 +1,5 @@
 #!/bin/sh
 # git-difftool-helper is a GIT_EXTERNAL_DIFF-compatible diff tool launcher.
-# It supports kdiff3, kompare, tkdiff, xxdiff, meld, opendiff,
-# emerge, ecmerge, vimdiff, gvimdiff, and custom user-configurable tools.
 # This script is typically launched by using the 'git difftool'
 # convenience command.
 #
@@ -55,6 +53,10 @@ launch_merge_tool () {
                "$merge_tool_path" "$LOCAL" "$REMOTE"
                ;;
 
+       diffuse)
+               "$merge_tool_path" "$LOCAL" "$REMOTE" | cat
+               ;;
+
        vimdiff)
                "$merge_tool_path" -d -c "wincmd l" "$LOCAL" "$REMOTE"
                ;;
@@ -164,9 +166,9 @@ if test -z "$merge_tool"; then
        if test -n "$DISPLAY"; then
                # If gnome then prefer meld, otherwise, prefer kdiff3 or kompare
                if test -n "$GNOME_DESKTOP_SESSION_ID" ; then
-                       merge_tool_candidates="meld kdiff3 kompare tkdiff xxdiff gvimdiff"
+                       merge_tool_candidates="meld kdiff3 kompare tkdiff xxdiff gvimdiff diffuse"
                else
-                       merge_tool_candidates="kdiff3 kompare tkdiff xxdiff meld gvimdiff"
+                       merge_tool_candidates="kdiff3 kompare tkdiff xxdiff meld gvimdiff diffuse"
                fi
        fi
        if echo "${VISUAL:-$EDITOR}" | grep 'emacs' > /dev/null 2>&1; then
index a00e9431c596431bc61600db3775a36b5ff7d521..af68466ebc95bbac739a48cb5f1caf3869d2ba3c 100644 (file)
@@ -25,8 +25,8 @@ OPTIONS
 --tool=<tool>::
        Use the diff tool specified by <tool>.
        Valid merge tools are:
-       kdiff3, kompare, tkdiff, meld, xxdiff, emerge,
-       vimdiff, gvimdiff, ecmerge, and opendiff
+       kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
+       ecmerge, diffuse and opendiff
 +
 If a diff tool is not specified, 'git-difftool'
 will use the configuration variable `diff.tool`.  If the
index be9717a2f10577c8cb83dc124bda4e6169ee39e9..b4d2432f02097bf9d75557a28b55200a223554f7 100755 (executable)
@@ -414,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 tortoisemerge gvimdiff"
+            merge_tool_candidates="meld kdiff3 tkdiff xxdiff tortoisemerge gvimdiff diffuse"
         else
-            merge_tool_candidates="kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff"
+            merge_tool_candidates="kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff diffuse"
         fi
     fi
     if echo "${VISUAL:-$EDITOR}" | grep 'emacs' > /dev/null 2>&1; then