git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [TOY PATCH] git wrapper: show similar command names for an unknown command
@ 2008-06-05  6:48 Johannes Schindelin
  2008-06-05  8:19 ` [PATCH] Add subcommand "help" to the list of most commonly used subcommands Teemu Likonen
                   ` (3 more replies)
  0 siblings, 4 replies; 28+ messages in thread
From: Johannes Schindelin @ 2008-06-05  6:48 UTC (permalink / raw)
  To: git, gitster


This patch introduces a modified Damerau-Levenshtein algorithm into
Git's code base, and uses it with the following penalties to show some
similar commands when an unknown command was encountered:

	swap = 0, insertion = 1, substitution = 2, deletion = 4

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

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---

	This is just a toy, but might be useful to other people.

 Makefile      |    2 ++
 help.c        |   43 +++++++++++++++++++++++++++++++++++++++++++
 levenshtein.c |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 levenshtein.h |    8 ++++++++
 4 files changed, 100 insertions(+), 0 deletions(-)
 create mode 100644 levenshtein.c
 create mode 100644 levenshtein.h

diff --git a/Makefile b/Makefile
index cce5a6e..df48af2 100644
--- a/Makefile
+++ b/Makefile
@@ -376,6 +376,7 @@ LIB_H += tree-walk.h
 LIB_H += unpack-trees.h
 LIB_H += utf8.h
 LIB_H += wt-status.h
+LIB_H += levenshtein.h
 
 LIB_OBJS += alias.o
 LIB_OBJS += alloc.o
@@ -471,6 +472,7 @@ LIB_OBJS += write_or_die.o
 LIB_OBJS += ws.o
 LIB_OBJS += wt-status.o
 LIB_OBJS += xdiff-interface.o
+LIB_OBJS += levenshtein.o
 
 BUILTIN_OBJS += builtin-add.o
 BUILTIN_OBJS += builtin-annotate.o
diff --git a/help.c b/help.c
index d89d437..ac29225 100644
--- a/help.c
+++ b/help.c
@@ -9,6 +9,7 @@
 #include "common-cmds.h"
 #include "parse-options.h"
 #include "run-command.h"
+#include "levenshtein.h"
 
 static struct man_viewer_list {
 	struct man_viewer_list *next;
@@ -623,9 +624,51 @@ static void show_html_page(const char *git_cmd)
 	execl_git_cmd("web--browse", "-c", "help.browser", page_path.buf, NULL);
 }
 
+static const char *levenshtein_cmd;
+static int similarity(const char *cmd) {
+	return levenshtein(levenshtein_cmd, cmd, 0, 2, 1, 4);
+}
+
+static int levenshtein_compare(const void *p1, const void *p2)
+{
+	const struct cmdname *const *c1 = p1, *const *c2 = p2;
+	const char *s1 = (*c1)->name, *s2 = (*c2)->name;
+	int l1 = similarity(s1);
+	int l2 = similarity(s2);
+	return l1 != l2 ? l1 - l2 : strcmp(s1, s2);
+}
+
 void help_unknown_cmd(const char *cmd)
 {
+	int i, header_shown = 0;
+
 	fprintf(stderr, "git: '%s' is not a git-command. See 'git --help'.\n", cmd);
+
+	load_command_list();
+	ALLOC_GROW(main_cmds.names, main_cmds.cnt + other_cmds.cnt,
+			main_cmds.alloc);
+	memcpy(main_cmds.names + main_cmds.cnt, other_cmds.names,
+		other_cmds.cnt * sizeof(other_cmds.names[0]));
+	main_cmds.cnt += other_cmds.cnt;
+
+	levenshtein_cmd = cmd;
+	qsort(main_cmds.names, main_cmds.cnt,
+	      sizeof(*main_cmds.names), levenshtein_compare);
+
+	for (i = 0; i < main_cmds.cnt; i++) {
+		int s = similarity(main_cmds.names[i]->name);
+		if (s > 6)
+			break;
+		if (!i) {
+			fprintf(stderr, "\nDid you mean %s?\n",
+				main_cmds.cnt < 2 ||
+				similarity(main_cmds.names[1]->name) > 6 ?
+				"this" : "one of these");
+			header_shown = 1;
+		}
+		fprintf(stderr, "\t%s\n", main_cmds.names[i]->name);
+	}
+
 	exit(1);
 }
 
diff --git a/levenshtein.c b/levenshtein.c
new file mode 100644
index 0000000..db52f2c
--- /dev/null
+++ b/levenshtein.c
@@ -0,0 +1,47 @@
+#include "cache.h"
+#include "levenshtein.h"
+
+int levenshtein(const char *string1, const char *string2,
+		int w, int s, int a, int d)
+{
+	int len1 = strlen(string1), len2 = strlen(string2);
+	int *row0 = xmalloc(sizeof(int) * (len2 + 1));
+	int *row1 = xmalloc(sizeof(int) * (len2 + 1));
+	int *row2 = xmalloc(sizeof(int) * (len2 + 1));
+	int i, j;
+
+	for (j = 0; j <= len2; j++)
+		row1[j] = j * a;
+	for (i = 0; i < len1; i++) {
+		int *dummy;
+
+		row2[0] = (i + 1) * d;
+		for (j = 0; j < len2; j++) {
+			/* substitution */
+			row2[j + 1] = row1[j] + s * (string1[i] != string2[j]);
+			/* swap */
+			if (i > 0 && j > 0 && string1[i - 1] == string2[j] &&
+					string1[i] == string2[j - 1] &&
+					row2[j + 1] > row0[j - 1] + w)
+				row2[j + 1] = row0[j - 1] + w;
+			/* deletion */
+			if (j + 1 < len2 && row2[j + 1] > row1[j + 1] + d)
+				row2[j + 1] = row1[j + 1] + d;
+			/* insertion */
+			if (row2[j + 1] > row2[j] + a)
+				row2[j + 1] = row2[j] + a;
+		}
+
+		dummy = row0;
+		row0 = row1;
+		row1 = row2;
+		row2 = dummy;
+	}
+
+	i = row1[len2];
+	free(row0);
+	free(row1);
+	free(row2);
+
+	return i;
+}
diff --git a/levenshtein.h b/levenshtein.h
new file mode 100644
index 0000000..0173abe
--- /dev/null
+++ b/levenshtein.h
@@ -0,0 +1,8 @@
+#ifndef LEVENSHTEIN_H
+#define LEVENSHTEIN_H
+
+int levenshtein(const char *string1, const char *string2,
+	int swap_penalty, int substition_penalty,
+	int insertion_penalty, int deletion_penalty);
+
+#endif
-- 
1.5.6.rc1.167.gce972

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05  6:48 [TOY PATCH] git wrapper: show similar command names for an unknown command Johannes Schindelin
@ 2008-06-05  8:19 ` Teemu Likonen
  2008-06-05 10:32   ` Johannes Schindelin
  2008-06-05 18:13   ` Junio C Hamano
  2008-06-05 20:59 ` [TOY PATCH] git wrapper: show similar command names for an unknown command Dirk Süsserott
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 28+ messages in thread
From: Teemu Likonen @ 2008-06-05  8:19 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, gitster

Johannes Schindelin wrote (2008-06-05 07:48 +0100):

> A typical output would now look like this:
> 
> 	$ git reabse
> 	git: 'reabse' is not a git-command. See 'git --help'.

A side note: The following three commands seem to do exactly the same:

  $ git --help log
  $ git log --help
  $ git help log

Which in itself is good, I think, since in all the cases user expects to
get the manual for "log". It seems that "git help <command>" is the most
often advertised in manuals and tutorials but it does not show in the
list printed by "git / git --help / git help":

  $ git
  usage: [...]

  The most commonly used git commands are:
  [There's no "help" command in the list.]

I think it belongs there, so how about the following patch? There are
two logically separate changes but I didn't feel that they deserve
separate commits.

---snip---
Add subcommand "help" to the list of most commonly used subcommands

Commands "git", "git --help" and "git help" did not list the subcommand
"help" as one of the most commonly used git commands. Yet "git help" is
advertised as the help command of git so this patch adds "help" the
list.

In addition to that change the short description in git-help.txt manual
to start with a capital letter.

Signed-off-by: Teemu Likonen <tlikonen@iki.fi>
---
 Documentation/git-help.txt |    2 +-
 command-list.txt           |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/git-help.txt b/Documentation/git-help.txt
index bfbba9e..4d3613c 100644
--- a/Documentation/git-help.txt
+++ b/Documentation/git-help.txt
@@ -3,7 +3,7 @@ git-help(1)
 
 NAME
 ----
-git-help - display help information about git
+git-help - Display help information about git
 
 SYNOPSIS
 --------
diff --git a/command-list.txt b/command-list.txt
index 3583a33..510ac69 100644
--- a/command-list.txt
+++ b/command-list.txt
@@ -47,7 +47,7 @@ git-get-tar-commit-id                   ancillaryinterrogators
 git-grep                                mainporcelain common
 git-gui                                 mainporcelain
 git-hash-object                         plumbingmanipulators
-git-help				ancillaryinterrogators
+git-help				ancillaryinterrogators common
 git-http-fetch                          synchelpers
 git-http-push                           synchelpers
 git-imap-send                           foreignscminterface
-- 
1.5.6.rc1.15.gc0c85

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05  8:19 ` [PATCH] Add subcommand "help" to the list of most commonly used subcommands Teemu Likonen
@ 2008-06-05 10:32   ` Johannes Schindelin
  2008-06-05 10:52     ` Teemu Likonen
  2008-06-05 11:21     ` Sverre Rabbelier
  2008-06-05 18:13   ` Junio C Hamano
  1 sibling, 2 replies; 28+ messages in thread
From: Johannes Schindelin @ 2008-06-05 10:32 UTC (permalink / raw)
  To: Teemu Likonen; +Cc: git, gitster

Hi,

On Thu, 5 Jun 2008, Teemu Likonen wrote:

> Add subcommand "help" to the list of most commonly used subcommands

Hrmpf.  IMO "help" is not really a _git_ command.  And I use it really, 
really rarely.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05 10:32   ` Johannes Schindelin
@ 2008-06-05 10:52     ` Teemu Likonen
  2008-06-05 10:57       ` [PATCH v2 1/2] " Teemu Likonen
  2008-06-05 12:58       ` [PATCH] Add subcommand "help" to the list of most commonly used subcommands Johannes Schindelin
  2008-06-05 11:21     ` Sverre Rabbelier
  1 sibling, 2 replies; 28+ messages in thread
From: Teemu Likonen @ 2008-06-05 10:52 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, gitster

Johannes Schindelin wrote (2008-06-05 11:32 +0100):

> On Thu, 5 Jun 2008, Teemu Likonen wrote:
> 
> > Add subcommand "help" to the list of most commonly used subcommands
> 
> Hrmpf.  IMO "help" is not really a _git_ command.  And I use it
> really, really rarely.

But you know git inside out, don't you? It seems common to have such
help command: svn help, bzr help, hg help. They all list "help" as one
of the subcommands. I don't know anything about "being really a git
command" but from user interface's point of view "git help" is a git
command. It's even advertised in output of other git commands (well, at
least "git gc --auto").

Anyway, I'd change the short description of "git help" to be more
informative so I'd separate the changes. Version 2 follows.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v2 1/2] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05 10:52     ` Teemu Likonen
@ 2008-06-05 10:57       ` Teemu Likonen
  2008-06-05 10:57         ` [PATCH v2 2/2] More informative short description for git-help.txt Teemu Likonen
  2008-06-05 12:58       ` [PATCH] Add subcommand "help" to the list of most commonly used subcommands Johannes Schindelin
  1 sibling, 1 reply; 28+ messages in thread
From: Teemu Likonen @ 2008-06-05 10:57 UTC (permalink / raw)
  To: git; +Cc: gitster, Johannes.Schindelin

Commands "git", "git --help" and "git help" did not list the subcommand
"help" as one of the most commonly used git commands. Yet "git help" is
advertised as the help command of git so this patch adds "help" the
list.

Signed-off-by: Teemu Likonen <tlikonen@iki.fi>
---
 command-list.txt |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/command-list.txt b/command-list.txt
index 3583a33..510ac69 100644
--- a/command-list.txt
+++ b/command-list.txt
@@ -47,7 +47,7 @@ git-get-tar-commit-id                   ancillaryinterrogators
 git-grep                                mainporcelain common
 git-gui                                 mainporcelain
 git-hash-object                         plumbingmanipulators
-git-help				ancillaryinterrogators
+git-help				ancillaryinterrogators common
 git-http-fetch                          synchelpers
 git-http-push                           synchelpers
 git-imap-send                           foreignscminterface
-- 
1.5.6.rc1.17.gfc76f

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 2/2] More informative short description for git-help.txt
  2008-06-05 10:57       ` [PATCH v2 1/2] " Teemu Likonen
@ 2008-06-05 10:57         ` Teemu Likonen
  0 siblings, 0 replies; 28+ messages in thread
From: Teemu Likonen @ 2008-06-05 10:57 UTC (permalink / raw)
  To: git; +Cc: gitster, Johannes.Schindelin

Signed-off-by: Teemu Likonen <tlikonen@iki.fi>
---
 Documentation/git-help.txt |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-help.txt b/Documentation/git-help.txt
index bfbba9e..4df3791 100644
--- a/Documentation/git-help.txt
+++ b/Documentation/git-help.txt
@@ -3,7 +3,7 @@ git-help(1)
 
 NAME
 ----
-git-help - display help information about git
+git-help - Display help information about git commands and other topics
 
 SYNOPSIS
 --------
-- 
1.5.6.rc1.17.gfc76f

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05 10:32   ` Johannes Schindelin
  2008-06-05 10:52     ` Teemu Likonen
@ 2008-06-05 11:21     ` Sverre Rabbelier
  2008-06-05 13:22       ` Teemu Likonen
  1 sibling, 1 reply; 28+ messages in thread
From: Sverre Rabbelier @ 2008-06-05 11:21 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Teemu Likonen, git, gitster

On Thu, Jun 5, 2008 at 12:32 PM, Johannes Schindelin
<Johannes.Schindelin@gmx.de> wrote:
> On Thu, 5 Jun 2008, Teemu Likonen wrote:
>> Add subcommand "help" to the list of most commonly used subcommands
>
> Hrmpf.  IMO "help" is not really a _git_ command.  And I use it really,
> really rarely.

I agree with this, but not because I don't use it rarely, but because
there is no such command 'git-help'. I know that we are urging the
user away from the dash notation, but if we want to advertise 'git
help' as an actual command, at least make 'git' recognize it as an
actual command instead of displaying the default usage notice (type
'git help' and see what I mean).

-- 
Cheers,

Sverre Rabbelier

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05 10:52     ` Teemu Likonen
  2008-06-05 10:57       ` [PATCH v2 1/2] " Teemu Likonen
@ 2008-06-05 12:58       ` Johannes Schindelin
  1 sibling, 0 replies; 28+ messages in thread
From: Johannes Schindelin @ 2008-06-05 12:58 UTC (permalink / raw)
  To: Teemu Likonen; +Cc: git, gitster

Hi,

On Thu, 5 Jun 2008, Teemu Likonen wrote:

> Johannes Schindelin wrote (2008-06-05 11:32 +0100):
> 
> > On Thu, 5 Jun 2008, Teemu Likonen wrote:
> > 
> > > Add subcommand "help" to the list of most commonly used subcommands
> > 
> > Hrmpf.  IMO "help" is not really a _git_ command.  And I use it
> > really, really rarely.
> 
> But you know git inside out, don't you? It seems common to have such
> help command: svn help, bzr help, hg help.

Oh, I was not talking about how common that command is, but how commonly 
used.

And I would be quite annoyed by "git help" telling me that there is a 
"help" command as well; how does it think I got the list to begin with?  
Of course I used "git help", so I know that command already, and do not 
need it listed with more interesting commands.

Whatever,
Dscho

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05 11:21     ` Sverre Rabbelier
@ 2008-06-05 13:22       ` Teemu Likonen
  0 siblings, 0 replies; 28+ messages in thread
From: Teemu Likonen @ 2008-06-05 13:22 UTC (permalink / raw)
  To: sverre; +Cc: Johannes Schindelin, git, gitster

Sverre Rabbelier wrote (2008-06-05 13:21 +0200):

> On Thu, Jun 5, 2008 at 12:32 PM, Johannes Schindelin
> <Johannes.Schindelin@gmx.de> wrote:
> > On Thu, 5 Jun 2008, Teemu Likonen wrote:
> >> Add subcommand "help" to the list of most commonly used subcommands
> >
> > Hrmpf.  IMO "help" is not really a _git_ command.  And I use it
> > really, really rarely.
> 
> I agree with this, but not because I don't use it rarely, but because
> there is no such command 'git-help'. I know that we are urging the
> user away from the dash notation, but if we want to advertise 'git
> help' as an actual command, at least make 'git' recognize it as an
> actual command instead of displaying the default usage notice (type
> 'git help' and see what I mean).

Well, you guys know the internals, I don't, but I have to admit that
your opinions sound weird to me at the moment. I mean, what's the
purpose of the command list printed after typing just "git"? To help
users, I'd say. Making help commands/options easily available is for the
same purpose. If manuals, mailing lists, web pages, IRC logs and your
grandmothers advertise "git help" as _the_ help command but at the same
time user can't find the command advertised in the git's own "metahelp"
page it's quite confusing.

I came up with this suggestion because of my personal confusion. Command
"git" speaks only about --help option and I was coming to a conclusion
that "git help" is deprecated and instructions are just out-of-date.
Then I read the "git help help" manual and saw that actually "git
--help" is internally converted to "git help" so it's probably not
deprecated (quite the opposite actually). And yet the front page printed
by "git" does not show it.

But ok, here's another suggestion: If "git help" is not a real git
command then maybe not list it with other commonly used commands.
Instead print separate instructions before or after the list. Something
like this:

  Type "git help <command>" for more information on a specific command
  or other topic.


Examples from other tools:

  $ hg help | grep help
   help         show help for a command, extension, or list of commands
  use "hg -v help" to show aliases and global options
  
  $ bzr help | grep help
    bzr help init      more help on e.g. init command
    bzr help commands  list all commands
    bzr help topics    list all help topics
  
  $ svn help | grep help
  Type 'svn help <subcommand>' for help on a specific subcommand.
     help (?, h)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05  8:19 ` [PATCH] Add subcommand "help" to the list of most commonly used subcommands Teemu Likonen
  2008-06-05 10:32   ` Johannes Schindelin
@ 2008-06-05 18:13   ` Junio C Hamano
  2008-06-05 18:38     ` Pieter de Bie
  2008-06-05 18:42     ` Wincent Colaiuta
  1 sibling, 2 replies; 28+ messages in thread
From: Junio C Hamano @ 2008-06-05 18:13 UTC (permalink / raw)
  To: Teemu Likonen; +Cc: Johannes Schindelin, git, gitster

Teemu Likonen <tlikonen@iki.fi> writes:

>   $ git
>   usage: [...]
>
>   The most commonly used git commands are:
>   [There's no "help" command in the list.]
>
> I think it belongs there,...

While I do agree that a word 'help' should appear in the above output
somewhere, it is a horrible idea to place it in "list of common commands"
for two reasons.

 (1) nobody keeps typing "git help".  The reason we may want to mention
     'help' in this output is not because it is common;

 (2) 'help' _is_ different from other commands.  It is something one may
     want to know the presense of when one is still lost after seeing the
     above quoted output, especially when one is starting to learn.  It
     makes it more difficult to spot it if you bury it as one of the
     commands in a list.

It is reasonable to mention 'help' somewhere in the output, but if we are
going to do this, we should make it stand out.  Perhaps like this.

-- >8 --
$ git
usage: git [--version] ...

The most commonly used git commands are:
   add        Add file contents to the index
   bisect     Find the change that introduced a bug by binary search
   branch     List, create, or delete branches
   ...
   show       Show various types of objects
   status     Show the working tree status
   tag        Create, list, delete or verify a tag object signed with GPG

See 'man git' and 'git help' for more information.
-- 8< --

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05 18:13   ` Junio C Hamano
@ 2008-06-05 18:38     ` Pieter de Bie
  2008-06-05 21:15       ` Teemu Likonen
  2008-06-05 21:17       ` Junio C Hamano
  2008-06-05 18:42     ` Wincent Colaiuta
  1 sibling, 2 replies; 28+ messages in thread
From: Pieter de Bie @ 2008-06-05 18:38 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Teemu Likonen, Johannes Schindelin, git


On 5 jun 2008, at 20:13, Junio C Hamano wrote:

> See 'man git' and 'git help' for more information.

I'd like to see something more like

See 'git help COMMAND' for more information on a specific command


- Pieter

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05 18:13   ` Junio C Hamano
  2008-06-05 18:38     ` Pieter de Bie
@ 2008-06-05 18:42     ` Wincent Colaiuta
  2008-06-05 19:15       ` Sverre Rabbelier
  1 sibling, 1 reply; 28+ messages in thread
From: Wincent Colaiuta @ 2008-06-05 18:42 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Teemu Likonen, Johannes Schindelin, git


El 5/6/2008, a las 20:13, Junio C Hamano escribió:

> It is reasonable to mention 'help' somewhere in the output, but if  
> we are
> going to do this, we should make it stand out.  Perhaps like this.
>
> -- >8 --
> $ git
> usage: git [--version] ...
>
> The most commonly used git commands are:
>   add        Add file contents to the index
>   bisect     Find the change that introduced a bug by binary search
>   branch     List, create, or delete branches
>   ...
>   show       Show various types of objects
>   status     Show the working tree status
>   tag        Create, list, delete or verify a tag object signed with  
> GPG
>
> See 'man git' and 'git help' for more information.
> -- 8< --

But if the user types "git help" they'll be presented with the exact  
same list of common commands again, at which point they'll probably  
wonder why Git suggested that.

Funnily enough, if they type "git help help" then they'll get the "git- 
help" man page. So, there is no command called "git-help" on the  
system, but from the user's perspective it walks, talks and quacks  
like all the "real" commands, and so they probably consider it to be  
one. Whether or not the "help" subcommand corresponds to a real  
executable or script is really just an implementation detail, I think.

Having said that, I think your suggestion is sound if it were reworded  
as:

   See 'man git' and 'git help [command]' for more information.

Cheers,
Wincent

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05 18:42     ` Wincent Colaiuta
@ 2008-06-05 19:15       ` Sverre Rabbelier
  0 siblings, 0 replies; 28+ messages in thread
From: Sverre Rabbelier @ 2008-06-05 19:15 UTC (permalink / raw)
  To: Wincent Colaiuta; +Cc: Junio C Hamano, Teemu Likonen, Johannes Schindelin, git

On Thu, Jun 5, 2008 at 8:42 PM, Wincent Colaiuta <win@wincent.com> wrote:

> But if the user types "git help" they'll be presented with the exact same
> list of common commands again, at which point they'll probably wonder why
> Git suggested that.

This is exactly what I meant with my earlier comment.

> Funnily enough, if they type "git help help" then they'll get the "git-help"
> man page. So, there is no command called "git-help" on the system, but from
> the user's perspective it walks, talks and quacks like all the "real"
> commands, and so they probably consider it to be one. Whether or not the
> "help" subcommand corresponds to a real executable or script is really just
> an implementation detail, I think.

I fully agree here, it doesn't matter if there is a 'git-help.sh' or
'git-help' executable, as long as from the users POV there is a 'git
help' command should we advertise it.

> Having said that, I think your suggestion is sound if it were reworded as:
>
>  See 'man git' and 'git help [command]' for more information.

That would be good, since it does not advertise a git help command,
instead it advertises 'git help command', which clearly -is- a command
(since typing 'git help command' brings up a man page).

-- 
Cheers,

Sverre Rabbelier

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-05  6:48 [TOY PATCH] git wrapper: show similar command names for an unknown command Johannes Schindelin
  2008-06-05  8:19 ` [PATCH] Add subcommand "help" to the list of most commonly used subcommands Teemu Likonen
@ 2008-06-05 20:59 ` Dirk Süsserott
  2008-06-05 23:00   ` Johannes Schindelin
  2008-06-06 12:15 ` Robin Rosenberg
  2008-06-07  7:27 ` Alex Riesen
  3 siblings, 1 reply; 28+ messages in thread
From: Dirk Süsserott @ 2008-06-05 20:59 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, gitster

Johannes Schindelin schrieb:
> This patch introduces a modified Damerau-Levenshtein algorithm into
> Git's code base, and uses it with the following penalties to show some
> similar commands when an unknown command was encountered:
>
> 	swap = 0, insertion = 1, substitution = 2, deletion = 4
>
> 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
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
> 	This is just a toy, but might be useful to other people.
>
>   
[snip]

Whow! This is really cool, especially for people that do not know the
different commands by heart -- like me. I often know there's a
command that's spelled somehow like X but I don't exactly remember.
Your patch seems perfect for that situation. :-)
Keen on seeing it in a future release. Thanks in advance. Did someone
suggest it or was it your very own idea?

    -- Dirk

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05 18:38     ` Pieter de Bie
@ 2008-06-05 21:15       ` Teemu Likonen
  2008-06-05 21:17       ` Junio C Hamano
  1 sibling, 0 replies; 28+ messages in thread
From: Teemu Likonen @ 2008-06-05 21:15 UTC (permalink / raw)
  To: Pieter de Bie; +Cc: Junio C Hamano, Johannes Schindelin, git

Pieter de Bie wrote (2008-06-05 20:38 +0200):

> On 5 jun 2008, at 20:13, Junio C Hamano wrote:
> 
> >See 'man git' and 'git help' for more information.
> 
> I'd like to see something more like
> 
> See 'git help COMMAND' for more information on a specific command

Sounds good. Here comes my first _ever_ attempt on C "programming". It
implements (i.e. tries to) what pretty much seems like an agreement on
the list: a separate info line after the command list. If the patch
sucks, well, at least I've had fun trying. And there's no need to ask me
to defend my code; I'm not able to answer. :-)

---snip---
Print info about "git help COMMAND" on git's main usage pages

Git's main usage pages did not show "git help" as a way to get more
information on a specific subcommand. This patch adds an info line after
the list of git commands currently printed by "git", "git help", "git
--help" and "git help --all".

Signed-off-by: Teemu Likonen <tlikonen@iki.fi>
---
 builtin.h |    1 +
 git.c     |    4 ++++
 help.c    |    2 ++
 3 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/builtin.h b/builtin.h
index 8bda111..b460b2d 100644
--- a/builtin.h
+++ b/builtin.h
@@ -5,6 +5,7 @@
 
 extern const char git_version_string[];
 extern const char git_usage_string[];
+extern const char git_more_info_string[];
 
 extern void list_common_cmds_help(void);
 extern void help_unknown_cmd(const char *cmd);
diff --git a/git.c b/git.c
index 272bf03..15a0e71 100644
--- a/git.c
+++ b/git.c
@@ -6,6 +6,9 @@
 const char git_usage_string[] =
 	"git [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]";
 
+const char git_more_info_string[] =
+	"See 'git help COMMAND' for more information on a specific command.";
+
 static int handle_options(const char*** argv, int* argc, int* envchanged)
 {
 	int handled = 0;
@@ -427,6 +430,7 @@ int main(int argc, const char **argv)
 		/* The user didn't specify a command; give them help */
 		printf("usage: %s\n\n", git_usage_string);
 		list_common_cmds_help();
+		printf("\n%s\n", git_more_info_string);
 		exit(1);
 	}
 	cmd = argv[0];
diff --git a/help.c b/help.c
index d89d437..8aff94c 100644
--- a/help.c
+++ b/help.c
@@ -649,12 +649,14 @@ int cmd_help(int argc, const char **argv, const char *prefix)
 	if (show_all) {
 		printf("usage: %s\n\n", git_usage_string);
 		list_commands();
+		printf("%s\n", git_more_info_string);
 		return 0;
 	}
 
 	if (!argv[0]) {
 		printf("usage: %s\n\n", git_usage_string);
 		list_common_cmds_help();
+		printf("\n%s\n", git_more_info_string);
 		return 0;
 	}
 
-- 
1.5.6.rc1.16.gc6796

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05 18:38     ` Pieter de Bie
  2008-06-05 21:15       ` Teemu Likonen
@ 2008-06-05 21:17       ` Junio C Hamano
  2008-06-06  5:11         ` David Symonds
  1 sibling, 1 reply; 28+ messages in thread
From: Junio C Hamano @ 2008-06-05 21:17 UTC (permalink / raw)
  To: Pieter de Bie; +Cc: Teemu Likonen, Johannes Schindelin, git

Pieter de Bie <pdebie@ai.rug.nl> writes:

> On 5 jun 2008, at 20:13, Junio C Hamano wrote:
>
>> See 'man git' and 'git help' for more information.
>
> I'd like to see something more like
>
> See 'git help COMMAND' for more information on a specific command

Yeah, I think that is so far the best color of the shed I suggested
"Perhaps like this".

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-05 20:59 ` [TOY PATCH] git wrapper: show similar command names for an unknown command Dirk Süsserott
@ 2008-06-05 23:00   ` Johannes Schindelin
  0 siblings, 0 replies; 28+ messages in thread
From: Johannes Schindelin @ 2008-06-05 23:00 UTC (permalink / raw)
  To: Dirk Süsserott; +Cc: git, gitster

[-- Attachment #1: Type: TEXT/PLAIN, Size: 827 bytes --]

Hi,

On Thu, 5 Jun 2008, Dirk Süsserott wrote:

> This is really cool, especially for people that do not know the 
> different commands by heart -- like me. I often know there's a command 
> that's spelled somehow like X but I don't exactly remember. Your patch 
> seems perfect for that situation. :-)

Heh.

> Keen on seeing it in a future release. Thanks in advance. Did someone 
> suggest it or was it your very own idea?

Maybe someone suggested it in the past.  It just happened that I wanted to 
procrastinate, and levenshtein.c in my personal fork came before my eyes.  
This was the next best thing I could think of doing with it.

In the course I realized that my extension to take swaps into account was 
already known as the Damerau-Levenshtein distance, so I even learnt 
something in the process ;-)

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] Add subcommand "help" to the list of most commonly used subcommands
  2008-06-05 21:17       ` Junio C Hamano
@ 2008-06-06  5:11         ` David Symonds
  0 siblings, 0 replies; 28+ messages in thread
From: David Symonds @ 2008-06-06  5:11 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Pieter de Bie, Teemu Likonen, Johannes Schindelin, git

On Fri, Jun 6, 2008 at 7:17 AM, Junio C Hamano <gitster@pobox.com> wrote:
> Pieter de Bie <pdebie@ai.rug.nl> writes:
>
>> On 5 jun 2008, at 20:13, Junio C Hamano wrote:
>>
>>> See 'man git' and 'git help' for more information.
>>
>> I'd like to see something more like
>>
>> See 'git help COMMAND' for more information on a specific command
>
> Yeah, I think that is so far the best color of the shed I suggested
> "Perhaps like this".

I think mauve has the most RAM.


Dave.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-05  6:48 [TOY PATCH] git wrapper: show similar command names for an unknown command Johannes Schindelin
  2008-06-05  8:19 ` [PATCH] Add subcommand "help" to the list of most commonly used subcommands Teemu Likonen
  2008-06-05 20:59 ` [TOY PATCH] git wrapper: show similar command names for an unknown command Dirk Süsserott
@ 2008-06-06 12:15 ` Robin Rosenberg
  2008-06-06 14:18   ` Wincent Colaiuta
  2008-06-07  7:27 ` Alex Riesen
  3 siblings, 1 reply; 28+ messages in thread
From: Robin Rosenberg @ 2008-06-06 12:15 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, gitster

torsdagen den 5 juni 2008 08.48.40 skrev Johannes Schindelin:
> 
> This patch introduces a modified Damerau-Levenshtein algorithm into
> Git's code base, and uses it with the following penalties to show some
> similar commands when an unknown command was encountered:
> 
> 	swap = 0, insertion = 1, substitution = 2, deletion = 4
> 
> 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
> 
Sorry about my negativity here..

Doesn't this confuse more than it helps? Most people do not need to know about rerere, rev-parse or merge-base so it is very unlikely they actually meant those. That might be an issue of tuning than general principles, but I have my doubts. It won't hint that there are wildly different variants of rebase, which ctually might be much more important to know than rerere, not will it tell svn users that git revert isn't even close to svn revert.

Completion or git gui is a much better tool for solving this isssue

Some ancient LISP had a DWIM (do what I mean) and there might be a reason it has not become ery popular.

Despite not being useful, it's still cool :)

-- robin

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-06 12:15 ` Robin Rosenberg
@ 2008-06-06 14:18   ` Wincent Colaiuta
  0 siblings, 0 replies; 28+ messages in thread
From: Wincent Colaiuta @ 2008-06-06 14:18 UTC (permalink / raw)
  To: Robin Rosenberg; +Cc: Johannes Schindelin, git, gitster

El 6/6/2008, a las 14:15, Robin Rosenberg escribió:

> torsdagen den 5 juni 2008 08.48.40 skrev Johannes Schindelin:
>>
>> This patch introduces a modified Damerau-Levenshtein algorithm into
>> Git's code base, and uses it with the following penalties to show  
>> some
>> similar commands when an unknown command was encountered:
>>
>> 	swap = 0, insertion = 1, substitution = 2, deletion = 4
>>
>> 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
>>
> Sorry about my negativity here..
>
> Doesn't this confuse more than it helps? Most people do not need to  
> know about rerere, rev-parse or merge-base so it is very unlikely  
> they actually meant those. That might be an issue of tuning than  
> general principles, but I have my doubts. It won't hint that there  
> are wildly different variants of rebase, which ctually might be much  
> more important to know than rerere, not will it tell svn users that  
> git revert isn't even close to svn revert.
>
> Completion or git gui is a much better tool for solving this isssue

All true, but most of those issues would go away if just _one_ guess,  
the best guess, was shown.

Cheers,
Wincent

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-05  6:48 [TOY PATCH] git wrapper: show similar command names for an unknown command Johannes Schindelin
                   ` (2 preceding siblings ...)
  2008-06-06 12:15 ` Robin Rosenberg
@ 2008-06-07  7:27 ` Alex Riesen
  2008-06-07 15:04   ` Johannes Schindelin
  3 siblings, 1 reply; 28+ messages in thread
From: Alex Riesen @ 2008-06-07  7:27 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, gitster

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);

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-07  7:27 ` Alex Riesen
@ 2008-06-07 15:04   ` Johannes Schindelin
  2008-06-07 17:51     ` Alex Riesen
  0 siblings, 1 reply; 28+ messages in thread
From: Johannes Schindelin @ 2008-06-07 15:04 UTC (permalink / raw)
  To: Alex Riesen; +Cc: git, gitster

Hi,

On Sat, 7 Jun 2008, Alex Riesen wrote:


> 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);

How about this instead?

-- snipsnap --

 help.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/help.c b/help.c
index bd51852..173e502 100644
--- a/help.c
+++ b/help.c
@@ -655,7 +655,7 @@ void help_unknown_cmd(const char *cmd)
 	qsort(main_cmds.names, main_cmds.cnt,
 	      sizeof(*main_cmds.names), levenshtein_compare);
 
-	for (i = 0; i < main_cmds.cnt; i++) {
+	for (i = 0; i < main_cmds.cnt && i < 5; i++) {
 		int s = similarity(main_cmds.names[i]->name);
 		if (s > 6)
 			break;

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-07 15:04   ` Johannes Schindelin
@ 2008-06-07 17:51     ` Alex Riesen
  2008-06-07 18:08       ` Junio C Hamano
  0 siblings, 1 reply; 28+ messages in thread
From: Alex Riesen @ 2008-06-07 17:51 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, gitster

Johannes Schindelin, Sat, Jun 07, 2008 17:04:14 +0200:
> -	for (i = 0; i < main_cmds.cnt; i++) {
> +	for (i = 0; i < main_cmds.cnt && i < 5; i++) {

I accidentally considered "i" just the index in the global command
table. Of course it is better :)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-07 17:51     ` Alex Riesen
@ 2008-06-07 18:08       ` Junio C Hamano
  2008-06-08 15:07         ` Johannes Schindelin
  0 siblings, 1 reply; 28+ messages in thread
From: Junio C Hamano @ 2008-06-07 18:08 UTC (permalink / raw)
  To: Alex Riesen; +Cc: Johannes Schindelin, git, gitster

Alex Riesen <raa.lkml@gmail.com> writes:

> Johannes Schindelin, Sat, Jun 07, 2008 17:04:14 +0200:
>> -	for (i = 0; i < main_cmds.cnt; i++) {
>> +	for (i = 0; i < main_cmds.cnt && i < 5; i++) {
>
> I accidentally considered "i" just the index in the global command
> table. Of course it is better :)

That confusion however shows how hacky the approach to clobber the
main_cmds global table by stuffing other things in it and sorting, without
saying "who cares, we will exit after we are done with this processing
anyway".  If this patch were for inclusion, such a comment should be there
immediately before it starts to muck with the command table.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-07 18:08       ` Junio C Hamano
@ 2008-06-08 15:07         ` Johannes Schindelin
  2008-06-08 15:14           ` Dirk Süsserott
  0 siblings, 1 reply; 28+ messages in thread
From: Johannes Schindelin @ 2008-06-08 15:07 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Alex Riesen, git

Hi,

On Sat, 7 Jun 2008, Junio C Hamano wrote:

> Alex Riesen <raa.lkml@gmail.com> writes:
> 
> > Johannes Schindelin, Sat, Jun 07, 2008 17:04:14 +0200:
> >> -	for (i = 0; i < main_cmds.cnt; i++) {
> >> +	for (i = 0; i < main_cmds.cnt && i < 5; i++) {
> >
> > I accidentally considered "i" just the index in the global command
> > table. Of course it is better :)
> 
> That confusion however shows how hacky the approach to clobber the 
> main_cmds global table by stuffing other things in it and sorting, 
> without saying "who cares, we will exit after we are done with this 
> processing anyway".  If this patch were for inclusion, such a comment 
> should be there immediately before it starts to muck with the command 
> table.

This patch is not meant for inclusion, as indicated by the "TOY PATCH" 
prefix.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-08 15:07         ` Johannes Schindelin
@ 2008-06-08 15:14           ` Dirk Süsserott
  2008-06-08 17:53             ` Junio C Hamano
  0 siblings, 1 reply; 28+ messages in thread
From: Dirk Süsserott @ 2008-06-08 15:14 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Junio C Hamano, Alex Riesen, git

Johannes Schindelin schrieb:
> This patch is not meant for inclusion, as indicated by the "TOY PATCH" 
> prefix.
>   
What a pity! :-( I liked it.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-08 15:14           ` Dirk Süsserott
@ 2008-06-08 17:53             ` Junio C Hamano
  2008-06-08 23:26               ` Johannes Schindelin
  0 siblings, 1 reply; 28+ messages in thread
From: Junio C Hamano @ 2008-06-08 17:53 UTC (permalink / raw)
  To: Dirk Süsserott; +Cc: Johannes Schindelin, Alex Riesen, git

Dirk Süsserott <newsletter@dirk.my1.cc> writes:

> Johannes Schindelin schrieb:
>> This patch is not meant for inclusion, as indicated by the "TOY
>> PATCH" prefix.

Yes, I understand it.

I was not complaining about the "who cares, we will exit after we are done
with this processing anyway" attitude in this code.  I think it is a
reasonable approach to take because it is not likely that this codepath to
change and would start wanting to access the original command table after
it did its munging.  I was suggesting a positive improvement to the patch
by making it explicitly documented to help people polish further, that's
all.  You do not have to be so defensive.

> What a pity! :-( I liked it.

Likewise.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [TOY PATCH] git wrapper: show similar command names for an unknown command
  2008-06-08 17:53             ` Junio C Hamano
@ 2008-06-08 23:26               ` Johannes Schindelin
  0 siblings, 0 replies; 28+ messages in thread
From: Johannes Schindelin @ 2008-06-08 23:26 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Dirk Süsserott, Alex Riesen, git

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1158 bytes --]

Hi,

On Sun, 8 Jun 2008, Junio C Hamano wrote:

> Dirk Süsserott <newsletter@dirk.my1.cc> writes:
> 
> > Johannes Schindelin schrieb:
> >> This patch is not meant for inclusion, as indicated by the "TOY
> >> PATCH" prefix.
> 
> Yes, I understand it.
> 
> I was not complaining about the "who cares, we will exit after we are 
> done with this processing anyway" attitude in this code.  I think it is 
> a reasonable approach to take because it is not likely that this 
> codepath to change and would start wanting to access the original 
> command table after it did its munging.  I was suggesting a positive 
> improvement to the patch by making it explicitly documented to help 
> people polish further, that's all.

I understood that.  However, I simply do not have the time to take care of 
that.  That's why I said it is a toy patch, and I did not mean it for 
inclusion.  It was just a nice time waster for me; it's not even something 
I'd find terribly useful myself, unless it asked me if I wanted to execute 
this or that instead (provided that isatty()).

> You do not have to be so defensive.

I wasn't.  At least I did not mean to.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2008-06-08 23:28 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-05  6:48 [TOY PATCH] git wrapper: show similar command names for an unknown command Johannes Schindelin
2008-06-05  8:19 ` [PATCH] Add subcommand "help" to the list of most commonly used subcommands Teemu Likonen
2008-06-05 10:32   ` Johannes Schindelin
2008-06-05 10:52     ` Teemu Likonen
2008-06-05 10:57       ` [PATCH v2 1/2] " Teemu Likonen
2008-06-05 10:57         ` [PATCH v2 2/2] More informative short description for git-help.txt Teemu Likonen
2008-06-05 12:58       ` [PATCH] Add subcommand "help" to the list of most commonly used subcommands Johannes Schindelin
2008-06-05 11:21     ` Sverre Rabbelier
2008-06-05 13:22       ` Teemu Likonen
2008-06-05 18:13   ` Junio C Hamano
2008-06-05 18:38     ` Pieter de Bie
2008-06-05 21:15       ` Teemu Likonen
2008-06-05 21:17       ` Junio C Hamano
2008-06-06  5:11         ` David Symonds
2008-06-05 18:42     ` Wincent Colaiuta
2008-06-05 19:15       ` Sverre Rabbelier
2008-06-05 20:59 ` [TOY PATCH] git wrapper: show similar command names for an unknown command Dirk Süsserott
2008-06-05 23:00   ` Johannes Schindelin
2008-06-06 12:15 ` Robin Rosenberg
2008-06-06 14:18   ` Wincent Colaiuta
2008-06-07  7:27 ` Alex Riesen
2008-06-07 15:04   ` Johannes Schindelin
2008-06-07 17:51     ` Alex Riesen
2008-06-07 18:08       ` Junio C Hamano
2008-06-08 15:07         ` Johannes Schindelin
2008-06-08 15:14           ` Dirk Süsserott
2008-06-08 17:53             ` Junio C Hamano
2008-06-08 23:26               ` Johannes Schindelin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).