Merge branch 'jc/mergetool-tool-help' into maint
* jc/mergetool-tool-help: mergetool: support --tool-help option like difftool doesmaint
commit
f52a386ef2
|
|
@ -27,9 +27,9 @@ OPTIONS
|
||||||
-t <tool>::
|
-t <tool>::
|
||||||
--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 values include emerge, gvimdiff, kdiff3,
|
||||||
araxis, bc3, diffuse, ecmerge, emerge, gvimdiff, kdiff3,
|
meld, vimdiff, and tortoisemerge. Run `git mergetool --tool-help`
|
||||||
meld, opendiff, p4merge, tkdiff, tortoisemerge, vimdiff and xxdiff.
|
for the list of valid <tool> settings.
|
||||||
+
|
+
|
||||||
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
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@ run_merge_tool () {
|
||||||
return $status
|
return $status
|
||||||
}
|
}
|
||||||
|
|
||||||
guess_merge_tool () {
|
list_merge_tool_candidates () {
|
||||||
if merge_mode
|
if merge_mode
|
||||||
then
|
then
|
||||||
tools="tortoisemerge"
|
tools="tortoisemerge"
|
||||||
|
|
@ -136,6 +136,10 @@ guess_merge_tool () {
|
||||||
tools="$tools emerge vimdiff"
|
tools="$tools emerge vimdiff"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
guess_merge_tool () {
|
||||||
|
list_merge_tool_candidates
|
||||||
echo >&2 "merge tool candidates: $tools"
|
echo >&2 "merge tool candidates: $tools"
|
||||||
|
|
||||||
# Loop over each candidate and stop when a valid merge tool is found.
|
# Loop over each candidate and stop when a valid merge tool is found.
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
# at the discretion of Junio C Hamano.
|
# at the discretion of Junio C Hamano.
|
||||||
#
|
#
|
||||||
|
|
||||||
USAGE='[--tool=tool] [-y|--no-prompt|--prompt] [file to merge] ...'
|
USAGE='[--tool=tool] [--tool-help] [-y|--no-prompt|--prompt] [file to merge] ...'
|
||||||
SUBDIRECTORY_OK=Yes
|
SUBDIRECTORY_OK=Yes
|
||||||
OPTIONS_SPEC=
|
OPTIONS_SPEC=
|
||||||
TOOL_MODE=merge
|
TOOL_MODE=merge
|
||||||
|
|
@ -284,11 +284,51 @@ merge_file () {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
show_tool_help () {
|
||||||
|
TOOL_MODE=merge
|
||||||
|
list_merge_tool_candidates
|
||||||
|
unavailable= available= LF='
|
||||||
|
'
|
||||||
|
for i in $tools
|
||||||
|
do
|
||||||
|
merge_tool_path=$(translate_merge_tool_path "$i")
|
||||||
|
if type "$merge_tool_path" >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
available="$available$i$LF"
|
||||||
|
else
|
||||||
|
unavailable="$unavailable$i$LF"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if test -n "$available"
|
||||||
|
then
|
||||||
|
echo "'git mergetool --tool=<tool>' may be set to one of the following:"
|
||||||
|
echo "$available" | sort | sed -e 's/^/ /'
|
||||||
|
else
|
||||||
|
echo "No suitable tool for 'git mergetool --tool=<tool>' found."
|
||||||
|
fi
|
||||||
|
if test -n "$unavailable"
|
||||||
|
then
|
||||||
|
echo
|
||||||
|
echo 'The following tools are valid, but not currently available:'
|
||||||
|
echo "$unavailable" | sort | sed -e 's/^/ /'
|
||||||
|
fi
|
||||||
|
if test -n "$unavailable$available"
|
||||||
|
then
|
||||||
|
echo
|
||||||
|
echo "Some of the tools listed above only work in a windowed"
|
||||||
|
echo "environment. If run in a terminal-only session, they will fail."
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
prompt=$(git config --bool mergetool.prompt || echo true)
|
prompt=$(git config --bool mergetool.prompt || echo true)
|
||||||
|
|
||||||
while test $# != 0
|
while test $# != 0
|
||||||
do
|
do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
--tool-help)
|
||||||
|
show_tool_help
|
||||||
|
;;
|
||||||
-t|--tool*)
|
-t|--tool*)
|
||||||
case "$#,$1" in
|
case "$#,$1" in
|
||||||
*,*=*)
|
*,*=*)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue