Merge branch 'jc/mergetool-tool-help'
"git mergetool" did not support --tool-help option to give the list of supported backends, like "git difftool" does. * jc/mergetool-tool-help: mergetool: support --tool-help option like difftool does
This commit is contained in:
commit
cf7864837c
@ -27,9 +27,9 @@ OPTIONS
|
||||
-t <tool>::
|
||||
--tool=<tool>::
|
||||
Use the merge resolution program specified by <tool>.
|
||||
Valid merge tools are:
|
||||
araxis, bc3, diffuse, ecmerge, emerge, gvimdiff, kdiff3,
|
||||
meld, opendiff, p4merge, tkdiff, tortoisemerge, vimdiff and xxdiff.
|
||||
Valid values include emerge, gvimdiff, kdiff3,
|
||||
meld, vimdiff, and tortoisemerge. Run `git mergetool --tool-help`
|
||||
for the list of valid <tool> settings.
|
||||
+
|
||||
If a merge resolution program is not specified, 'git mergetool'
|
||||
will use the configuration variable `merge.tool`. If the
|
||||
|
@ -111,7 +111,7 @@ run_merge_tool () {
|
||||
return $status
|
||||
}
|
||||
|
||||
guess_merge_tool () {
|
||||
list_merge_tool_candidates () {
|
||||
if merge_mode
|
||||
then
|
||||
tools="tortoisemerge"
|
||||
@ -136,6 +136,10 @@ guess_merge_tool () {
|
||||
tools="$tools emerge vimdiff"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
guess_merge_tool () {
|
||||
list_merge_tool_candidates
|
||||
echo >&2 "merge tool candidates: $tools"
|
||||
|
||||
# Loop over each candidate and stop when a valid merge tool is found.
|
||||
|
@ -8,7 +8,7 @@
|
||||
# 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
|
||||
OPTIONS_SPEC=
|
||||
TOOL_MODE=merge
|
||||
@ -284,11 +284,51 @@ merge_file () {
|
||||
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)
|
||||
|
||||
while test $# != 0
|
||||
do
|
||||
case "$1" in
|
||||
--tool-help)
|
||||
show_tool_help
|
||||
;;
|
||||
-t|--tool*)
|
||||
case "$#,$1" in
|
||||
*,*=*)
|
||||
|
Loading…
Reference in New Issue
Block a user