Skip to content

Commit ffe6dc0

Browse files
sschuberthgitster
authored andcommitted
mergetool--lib: Add Beyond Compare 3 as a tool
Signed-off-by: Sebastian Schuberth <[email protected]> Tested-by: Chris Packham <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent aa03f60 commit ffe6dc0

File tree

5 files changed

+24
-6
lines changed

5 files changed

+24
-6
lines changed

Documentation/git-difftool.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ OPTIONS
3131
--tool=<tool>::
3232
Use the diff tool specified by <tool>.
3333
Valid merge tools are:
34-
araxis, diffuse, emerge, ecmerge, gvimdiff, kdiff3,
34+
araxis, bc3, diffuse, emerge, ecmerge, gvimdiff, kdiff3,
3535
kompare, meld, opendiff, p4merge, tkdiff, vimdiff and xxdiff.
3636
+
3737
If a diff tool is not specified, 'git difftool'

Documentation/git-mergetool.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ OPTIONS
2626
--tool=<tool>::
2727
Use the merge resolution program specified by <tool>.
2828
Valid merge tools are:
29-
araxis, diffuse, ecmerge, emerge, gvimdiff, kdiff3,
29+
araxis, bc3, diffuse, ecmerge, emerge, gvimdiff, kdiff3,
3030
meld, opendiff, p4merge, tkdiff, tortoisemerge, vimdiff and xxdiff.
3131
+
3232
If a merge resolution program is not specified, 'git mergetool'

Documentation/merge-config.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ merge.stat::
3434
merge.tool::
3535
Controls which merge resolution program is used by
3636
linkgit:git-mergetool[1]. Valid built-in values are: "araxis",
37-
"diffuse", "ecmerge", "emerge", "gvimdiff", "kdiff3", "meld",
37+
"bc3", "diffuse", "ecmerge", "emerge", "gvimdiff", "kdiff3", "meld",
3838
"opendiff", "p4merge", "tkdiff", "tortoisemerge", "vimdiff"
3939
and "xxdiff". Any other value is treated is custom merge tool
4040
and there must be a corresponding mergetool.<tool>.cmd option.

contrib/completion/git-completion.bash

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1358,7 +1358,7 @@ _git_diff ()
13581358
}
13591359

13601360
__git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff
1361-
tkdiff vimdiff gvimdiff xxdiff araxis p4merge
1361+
tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3
13621362
"
13631363

13641364
_git_difftool ()

git-mergetool--lib.sh

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ translate_merge_tool_path () {
1313
araxis)
1414
echo compare
1515
;;
16+
bc3)
17+
echo bcompare
18+
;;
1619
emerge)
1720
echo emacs
1821
;;
@@ -46,7 +49,7 @@ check_unchanged () {
4649

4750
valid_tool () {
4851
case "$1" in
49-
araxis | diffuse | ecmerge | emerge | gvimdiff | gvimdiff2 | \
52+
araxis | bc3 | diffuse | ecmerge | emerge | gvimdiff | gvimdiff2 | \
5053
kdiff3 | meld | opendiff | p4merge | tkdiff | vimdiff | vimdiff2 | xxdiff)
5154
;; # happy
5255
kompare)
@@ -106,6 +109,21 @@ run_merge_tool () {
106109
>/dev/null 2>&1
107110
fi
108111
;;
112+
bc3)
113+
if merge_mode; then
114+
touch "$BACKUP"
115+
if $base_present; then
116+
"$merge_tool_path" "$LOCAL" "$REMOTE" "$BASE" \
117+
-mergeoutput="$MERGED"
118+
else
119+
"$merge_tool_path" "$LOCAL" "$REMOTE" \
120+
-mergeoutput="$MERGED"
121+
fi
122+
check_unchanged
123+
else
124+
"$merge_tool_path" "$LOCAL" "$REMOTE"
125+
fi
126+
;;
109127
diffuse)
110128
if merge_mode; then
111129
touch "$BACKUP"
@@ -342,7 +360,7 @@ guess_merge_tool () {
342360
else
343361
tools="opendiff kdiff3 tkdiff xxdiff meld $tools"
344362
fi
345-
tools="$tools gvimdiff diffuse ecmerge p4merge araxis"
363+
tools="$tools gvimdiff diffuse ecmerge p4merge araxis bc3"
346364
fi
347365
case "${VISUAL:-$EDITOR}" in
348366
*vim*)

0 commit comments

Comments
 (0)