Browse Source

mergetools/diffmerge: support DiffMerge as a git mergetool

DiffMerge is a non-free (but gratis) tool that supports OS X, Windows and Linux.

    See http://www.sourcegear.com/diffmerge/

DiffMerge includes a script `/usr/bin/diffmerge` that can be used to launch the
graphical compare tool.

This change adds mergetool support for DiffMerge and adds 'diffmerge' as an
option to the mergetool help.

Signed-off-by: Stefan Saasen <ssaasen@atlassian.com>
Acked-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
maint
Stefan Saasen 11 years ago committed by Jonathan Nieder
parent
commit
c5f424fd01
  1. 2
      contrib/completion/git-completion.bash
  2. 3
      git-mergetool--lib.sh
  3. 15
      mergetools/diffmerge

2
contrib/completion/git-completion.bash

@ -1188,7 +1188,7 @@ _git_diff () @@ -1188,7 +1188,7 @@ _git_diff ()
__git_complete_revlist_file
}

__git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff
__git_mergetools_common="diffuse diffmerge ecmerge emerge kdiff3 meld opendiff
tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 codecompare
"


3
git-mergetool--lib.sh

@ -250,7 +250,8 @@ list_merge_tool_candidates () { @@ -250,7 +250,8 @@ list_merge_tool_candidates () {
else
tools="opendiff kdiff3 tkdiff xxdiff meld $tools"
fi
tools="$tools gvimdiff diffuse ecmerge p4merge araxis bc3 codecompare"
tools="$tools gvimdiff diffuse diffmerge ecmerge"
tools="$tools p4merge araxis bc3 codecompare"
fi
case "${VISUAL:-$EDITOR}" in
*vim*)

15
mergetools/diffmerge

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE" >/dev/null 2>&1
}

merge_cmd () {
if $base_present
then
"$merge_tool_path" --merge --result="$MERGED" \
"$LOCAL" "$BASE" "$REMOTE"
else
"$merge_tool_path" --merge \
--result="$MERGED" "$LOCAL" "$REMOTE"
fi
status=$?
}
Loading…
Cancel
Save