Tim Henigan <tim.henigan@xxxxxxxxx> writes: > @@ -100,6 +101,15 @@ sub generate_command > if ($arg eq '-h') { > usage(); > } > + if ($arg eq '--tool-help') { > + my $gitpath = Git::exec_path(); > + print "'git difftool --tool=<tool>' may be set to one of the following:\n"; > + for (glob "$gitpath/mergetools/*") { > + next if /defaults$/; > + print "\t" . basename($_) . "\n"; > + } As this topic to show list of tools dynamically has plenty of time to be in the mainline (it will be post 1.7.10), I would suggest a follow-up series to this patch to do things like the following (just thinking aloud): - define a new entry point to these mergetools/ scriptlets, let's call it "cando". An entry for mergetools/kompare might look like this: cando () { type kompare >/dev/null && test -n "$DISPLAY" } that would yield true only when kompare is available and $DISPLAY is set. - instead of dumping everything in $gitpath/mergetools/*, check if each tool says it can be used in the user's environment. for (glob "$gitpath/mergetools/*") { next unless can_run($_); print ... } ... and "can_run" may look like this: sub can_run { my ($script) = @_; my $cmd = ". '$script' && cando"; system('sh', '-c', $cmd) == 0; } - perhaps show the result in columnar layout. -- 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