Johannes Schindelin, Thu, Jun 05, 2008 08:48:40 +0200:
A typical output would now look like this:
$ git reabse
git: 'reabse' is not a git-command. See 'git --help'.
Did you mean one of these?
rebase
merge-base
rev-parse
remote
rerere
That's really cool :) And I find it useful (and already applied it to
my tree). For me, it works like a simple reminder about what I was
about to do. Helps when working on many things at the same time
(typical typo: mrge. And your patch shows it as the first hit).
BTW, you probably want to restrict the number of lines output.
For instance, "git ma" (am, printed correctly in the first line)
lists around 30 commands, which scrolls clear a 25 line terminal
and is a lot of output anyway. I tried it with at most 5 hints:
diff --git a/help.c b/help.c
index ac29225..765eed8 100644
--- a/help.c
+++ b/help.c
@@ -640,7 +640,7 @@ static int levenshtein_compare(const void *p1, const void *p2)
void help_unknown_cmd(const char *cmd)
{
- int i, header_shown = 0;
+ int i, header_shown = 0, listed = 0;
fprintf(stderr, "git: '%s' is not a git-command. See 'git --help'.\n", cmd);
@@ -667,6 +667,8 @@ void help_unknown_cmd(const char *cmd)
header_shown = 1;
}
fprintf(stderr, "\t%s\n", main_cmds.names[i]->name);
+ if (++listed >= 5)
+ break;
}
exit(1);