summaryrefslogtreecommitdiff
path: root/git-mergetool.sh
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2012-08-06 15:30:18 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2012-08-06 15:30:18 -0700
commitf52a386ef256fbea1618affd85cf62ad8283b2f7 (patch)
tree05751e940605bdf0b26b47e92e01f1cb93ecc55b /git-mergetool.sh
parentGit 1.7.11.4 (diff)
parentmergetool: support --tool-help option like difftool does (diff)
downloadtgif-f52a386ef256fbea1618affd85cf62ad8283b2f7.tar.xz
Merge branch 'jc/mergetool-tool-help' into maint
* jc/mergetool-tool-help: mergetool: support --tool-help option like difftool does
Diffstat (limited to 'git-mergetool.sh')
-rwxr-xr-xgit-mergetool.sh42
1 files changed, 41 insertions, 1 deletions
diff --git a/git-mergetool.sh b/git-mergetool.sh
index a9f23f7fcd..0db0c44845 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -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
*,*=*)