mergetool--lib: Add Beyond Compare 3 as a tool

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Tested-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Sebastian Schuberth 2011-02-27 12:32:46 +01:00 committed by Junio C Hamano
parent aa03f60463
commit ffe6dc081a
5 changed files with 24 additions and 6 deletions

View File

@ -31,7 +31,7 @@ OPTIONS
--tool=<tool>:: --tool=<tool>::
Use the diff tool specified by <tool>. Use the diff tool specified by <tool>.
Valid merge tools are: Valid merge tools are:
araxis, diffuse, emerge, ecmerge, gvimdiff, kdiff3, araxis, bc3, diffuse, emerge, ecmerge, gvimdiff, kdiff3,
kompare, meld, opendiff, p4merge, tkdiff, vimdiff and xxdiff. kompare, meld, opendiff, p4merge, tkdiff, vimdiff and xxdiff.
+ +
If a diff tool is not specified, 'git difftool' If a diff tool is not specified, 'git difftool'

View File

@ -26,7 +26,7 @@ OPTIONS
--tool=<tool>:: --tool=<tool>::
Use the merge resolution program specified by <tool>. Use the merge resolution program specified by <tool>.
Valid merge tools are: Valid merge tools are:
araxis, diffuse, ecmerge, emerge, gvimdiff, kdiff3, araxis, bc3, diffuse, ecmerge, emerge, gvimdiff, kdiff3,
meld, opendiff, p4merge, tkdiff, tortoisemerge, vimdiff and xxdiff. meld, opendiff, p4merge, tkdiff, tortoisemerge, vimdiff and xxdiff.
+ +
If a merge resolution program is not specified, 'git mergetool' If a merge resolution program is not specified, 'git mergetool'

View File

@ -34,7 +34,7 @@ merge.stat::
merge.tool:: merge.tool::
Controls which merge resolution program is used by Controls which merge resolution program is used by
linkgit:git-mergetool[1]. Valid built-in values are: "araxis", linkgit:git-mergetool[1]. Valid built-in values are: "araxis",
"diffuse", "ecmerge", "emerge", "gvimdiff", "kdiff3", "meld", "bc3", "diffuse", "ecmerge", "emerge", "gvimdiff", "kdiff3", "meld",
"opendiff", "p4merge", "tkdiff", "tortoisemerge", "vimdiff" "opendiff", "p4merge", "tkdiff", "tortoisemerge", "vimdiff"
and "xxdiff". Any other value is treated is custom merge tool and "xxdiff". Any other value is treated is custom merge tool
and there must be a corresponding mergetool.<tool>.cmd option. and there must be a corresponding mergetool.<tool>.cmd option.

View File

@ -1358,7 +1358,7 @@ _git_diff ()
} }


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


_git_difftool () _git_difftool ()

View File

@ -13,6 +13,9 @@ translate_merge_tool_path () {
araxis) araxis)
echo compare echo compare
;; ;;
bc3)
echo bcompare
;;
emerge) emerge)
echo emacs echo emacs
;; ;;
@ -46,7 +49,7 @@ check_unchanged () {


valid_tool () { valid_tool () {
case "$1" in case "$1" in
araxis | diffuse | ecmerge | emerge | gvimdiff | gvimdiff2 | \ araxis | bc3 | diffuse | ecmerge | emerge | gvimdiff | gvimdiff2 | \
kdiff3 | meld | opendiff | p4merge | tkdiff | vimdiff | vimdiff2 | xxdiff) kdiff3 | meld | opendiff | p4merge | tkdiff | vimdiff | vimdiff2 | xxdiff)
;; # happy ;; # happy
kompare) kompare)
@ -106,6 +109,21 @@ run_merge_tool () {
>/dev/null 2>&1 >/dev/null 2>&1
fi fi
;; ;;
bc3)
if merge_mode; then
touch "$BACKUP"
if $base_present; then
"$merge_tool_path" "$LOCAL" "$REMOTE" "$BASE" \
-mergeoutput="$MERGED"
else
"$merge_tool_path" "$LOCAL" "$REMOTE" \
-mergeoutput="$MERGED"
fi
check_unchanged
else
"$merge_tool_path" "$LOCAL" "$REMOTE"
fi
;;
diffuse) diffuse)
if merge_mode; then if merge_mode; then
touch "$BACKUP" touch "$BACKUP"
@ -342,7 +360,7 @@ guess_merge_tool () {
else else
tools="opendiff kdiff3 tkdiff xxdiff meld $tools" tools="opendiff kdiff3 tkdiff xxdiff meld $tools"
fi fi
tools="$tools gvimdiff diffuse ecmerge p4merge araxis" tools="$tools gvimdiff diffuse ecmerge p4merge araxis bc3"
fi fi
case "${VISUAL:-$EDITOR}" in case "${VISUAL:-$EDITOR}" in
*vim*) *vim*)