Signed-off-by: Sebastian Schuberth <sschuberth@xxxxxxxxx> --- Documentation/git-difftool.txt | 2 +- Documentation/git-mergetool.txt | 2 +- Documentation/merge-config.txt | 2 +- contrib/completion/git-completion.bash | 2 +- git-gui/lib/mergetool.tcl | 7 +++++++ git-mergetool--lib.sh | 22 ++++++++++++++++++++-- 6 files changed, 31 insertions(+), 6 deletions(-) diff --git a/Documentation/git-difftool.txt b/Documentation/git-difftool.txt index a54fbf1..005e481 100644 --- a/Documentation/git-difftool.txt +++ b/Documentation/git-difftool.txt @@ -30,7 +30,7 @@ OPTIONS --tool=<tool>:: Use the diff tool specified by <tool>. 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. + If a diff tool is not specified, 'git difftool' diff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt index 4987245..740b3f1 100644 --- a/Documentation/git-mergetool.txt +++ b/Documentation/git-mergetool.txt @@ -26,7 +26,7 @@ OPTIONS --tool=<tool>:: Use the merge resolution program specified by <tool>. 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. + If a merge resolution program is not specified, 'git mergetool' diff --git a/Documentation/merge-config.txt b/Documentation/merge-config.txt index 2c4ca09..ca8fb2c 100644 --- a/Documentation/merge-config.txt +++ b/Documentation/merge-config.txt @@ -32,7 +32,7 @@ merge.stat:: merge.tool:: Controls which merge resolution program is used by 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" and "xxdiff". Any other value is treated is custom merge tool and there must be a corresponding mergetool.<tool>.cmd option. diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index f83f019..6507a4c 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -1135,7 +1135,7 @@ _git_diff () } __git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff - tkdiff vimdiff gvimdiff xxdiff araxis p4merge + tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 " _git_difftool () diff --git a/git-gui/lib/mergetool.tcl b/git-gui/lib/mergetool.tcl index 249e0cf..3c8e73b 100644 --- a/git-gui/lib/mergetool.tcl +++ b/git-gui/lib/mergetool.tcl @@ -187,6 +187,13 @@ proc merge_resolve_tool2 {} { "$LOCAL" "$REMOTE" "$MERGED"] } } + bc3 { + if {$base_stage ne {}} { + set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" "$BASE" -mergeoutput="$MERGED"] + } else { + set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" -mergeoutput="$MERGED"] + } + } ecmerge { if {$base_stage ne {}} { set cmdline [list "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" --default --mode=merge3 --to="$MERGED"] diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh index aebb070..47049a6 100644 --- a/git-mergetool--lib.sh +++ b/git-mergetool--lib.sh @@ -13,6 +13,9 @@ translate_merge_tool_path () { araxis) echo compare ;; + bc3) + echo BCompare + ;; emerge) echo emacs ;; @@ -46,7 +49,7 @@ check_unchanged () { valid_tool () { case "$1" in - araxis | diffuse | ecmerge | emerge | gvimdiff | \ + araxis | bc3 | diffuse | ecmerge | emerge | gvimdiff | \ kdiff3 | meld | opendiff | p4merge | tkdiff | vimdiff | xxdiff) ;; # happy kompare) @@ -106,6 +109,21 @@ run_merge_tool () { >/dev/null 2>&1 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) if merge_mode; then touch "$BACKUP" @@ -337,7 +355,7 @@ guess_merge_tool () { else tools="opendiff kdiff3 tkdiff xxdiff meld $tools" fi - tools="$tools gvimdiff diffuse ecmerge p4merge araxis" + tools="$tools gvimdiff diffuse ecmerge p4merge araxis bc3" fi case "${VISUAL:-$EDITOR}" in *vim*) -- 1.7.3.2.msysgit.11 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html