John Keeping <john@xxxxxxxxxxxxx> writes: > 'git mergetool --tool-help' only lists builtin tools, not those that the > user has configured via a 'mergetool.<tool>.cmd' config value. Fix this > by inspecting the tools configured in this way and adding them to the > available and unavailable lists before displaying them. Although I am not a mergetool user, I would imagine that it would make sense to show it as available. Just like "git help -a" lists subcommands in a way that can be easy to tell which ones are the standard ones and which ones are user customizations, this may want to give a similar distinction, though. I dunno. > > Signed-off-by: John Keeping <john@xxxxxxxxxxxxx> > --- > After the recent changes to mergetool, do we want to do something like > this as well, so that 'git mergetool --tool-help' will display any tools > configured by the user/system administrator? > > This is on top of jk/mergetool. > > git-mergetool--lib.sh | 29 +++++++++++++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh > index 1d0fb12..f9a617c 100644 > --- a/git-mergetool--lib.sh > +++ b/git-mergetool--lib.sh > @@ -206,6 +206,29 @@ list_merge_tool_candidates () { > esac > } > > +# Adds tools from git-config to the available and unavailable lists. > +# The tools are found in "$1.<tool>.cmd". > +add_config_tools() { > + section=$1 > + > + eval $(git config --get-regexp $section'\..*\.cmd' | > + while read -r key value > + do > + tool=${key#mergetool.} > + tool=${tool%.cmd} > + > + tool=$(echo "$tool" |sed -e 's/'\''/'\''\\'\'\''/g') > + > + cmd=$(eval -- "set -- $value"; echo "$1") > + if type "$cmd" >/dev/null 2>&1 > + then > + echo "available=\"\${available}\"'$tool'\"\$LF\"" > + else > + echo "unavailable=\"\${unavailable}\"'$tool'\"\$LF\"" > + fi > + done) > +} > + > show_tool_help () { > unavailable= available= LF=' > ' > @@ -223,6 +246,12 @@ show_tool_help () { > fi > done > > + add_config_tools mergetool > + if diff_mode > + then > + add_config_tools difftool > + fi > + > cmd_name=${TOOL_MODE}tool > if test -n "$available" > then -- 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