diff options
author | Stefan Saasen <ssaasen@atlassian.com> | 2013-10-13 09:29:35 +1100 |
---|---|---|
committer | Jonathan Nieder <jrnieder@gmail.com> | 2013-10-13 16:00:57 -0700 |
commit | c5f424fd014488bd8a92b97f52bfe47823bc2128 (patch) | |
tree | 56bc7d54267bfe09027c8f6771d176bf02e346fb | |
parent | .mailmap: switch to Thomas Rast's personal address (diff) | |
download | tgif-c5f424fd014488bd8a92b97f52bfe47823bc2128.tar.xz |
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>
-rw-r--r-- | contrib/completion/git-completion.bash | 2 | ||||
-rw-r--r-- | git-mergetool--lib.sh | 3 | ||||
-rw-r--r-- | mergetools/diffmerge | 15 |
3 files changed, 18 insertions, 2 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 86f77345fd..dba3c15700 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -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 " diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh index feee6a4a0d..858bc37e80 100644 --- a/git-mergetool--lib.sh +++ b/git-mergetool--lib.sh @@ -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*) diff --git a/mergetools/diffmerge b/mergetools/diffmerge new file mode 100644 index 0000000000..85ac720157 --- /dev/null +++ b/mergetools/diffmerge @@ -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=$? +} |