git-mergetool: add new merge tool TortoiseMerge
TortoiseMerge comes with TortoiseSVN or TortoiseGit for Windows. It can only be used as a merge tool with an existing base file. It cannot be used without a base nor as a diff tool. The documentation only mentions the slash '/' as command line option prefix, which refused to work, but the parser also accepts the dash '-' See http://code.google.com/p/msysgit/issues/detail?id=226 Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
bad4273200
commit
b98c212a9f
|
@ -26,7 +26,8 @@ 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:
|
||||||
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, and opendiff
|
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
|
||||||
|
tortoisemerge and opendiff
|
||||||
+
|
+
|
||||||
If a merge resolution program is not specified, 'git-mergetool'
|
If a merge resolution program is not specified, 'git-mergetool'
|
||||||
will use the configuration variable `merge.tool`. If the
|
will use the configuration variable `merge.tool`. If the
|
||||||
|
|
|
@ -23,7 +23,7 @@ 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: "kdiff3",
|
linkgit:git-mergetool[1]. Valid built-in values are: "kdiff3",
|
||||||
"tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff",
|
"tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff",
|
||||||
"ecmerge" and
|
"ecmerge", tortoisemerge and
|
||||||
"opendiff". Any other value is treated is custom merge tool
|
"opendiff". 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.
|
||||||
|
|
||||||
|
|
|
@ -265,6 +265,16 @@ merge_file () {
|
||||||
fi
|
fi
|
||||||
status=$?
|
status=$?
|
||||||
;;
|
;;
|
||||||
|
tortoisemerge)
|
||||||
|
if base_present ; then
|
||||||
|
touch "$BACKUP"
|
||||||
|
"$merge_tool_path" -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"
|
||||||
|
check_unchanged
|
||||||
|
else
|
||||||
|
echo "TortoiseMerge cannot be used without a base" 1>&2
|
||||||
|
status=1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
if test -n "$merge_tool_cmd"; then
|
if test -n "$merge_tool_cmd"; then
|
||||||
if test "$merge_tool_trust_exit_code" = "false"; then
|
if test "$merge_tool_trust_exit_code" = "false"; then
|
||||||
|
@ -345,7 +355,7 @@ valid_custom_tool()
|
||||||
|
|
||||||
valid_tool() {
|
valid_tool() {
|
||||||
case "$1" in
|
case "$1" in
|
||||||
kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | gvimdiff | ecmerge)
|
kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | gvimdiff | ecmerge | tortoisemerge)
|
||||||
;; # happy
|
;; # happy
|
||||||
*)
|
*)
|
||||||
if ! valid_custom_tool "$1"; then
|
if ! valid_custom_tool "$1"; then
|
||||||
|
@ -404,9 +414,9 @@ fi
|
||||||
if test -z "$merge_tool" ; then
|
if test -z "$merge_tool" ; then
|
||||||
if test -n "$DISPLAY"; then
|
if test -n "$DISPLAY"; then
|
||||||
if test -n "$GNOME_DESKTOP_SESSION_ID" ; then
|
if test -n "$GNOME_DESKTOP_SESSION_ID" ; then
|
||||||
merge_tool_candidates="meld kdiff3 tkdiff xxdiff gvimdiff"
|
merge_tool_candidates="meld kdiff3 tkdiff xxdiff tortoisemerge gvimdiff"
|
||||||
else
|
else
|
||||||
merge_tool_candidates="kdiff3 tkdiff xxdiff meld gvimdiff"
|
merge_tool_candidates="kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if echo "${VISUAL:-$EDITOR}" | grep 'emacs' > /dev/null 2>&1; then
|
if echo "${VISUAL:-$EDITOR}" | grep 'emacs' > /dev/null 2>&1; then
|
||||||
|
|
Loading…
Reference in New Issue