threads / patch / 3393

patchRe: [PATCH] git-rev-list --help anywhere

Subject: Re: [PATCH] git-rev-list --help anywhere

## tl;dr

6 messages between Feb 19, 2006 and Feb 20, 2006. Diffs are folded; open one to read it.

replies: 5people: 5as markdown or json

linux@horizon.com· Feb 19, 2006, 11:26 UTC · lore
>+	for (i = 1 ; i < argc; i++)
>+	    if ( !strcmp(argv[i], "--help") )
>+		usage(rev_list_usage);
You might want to try something more like:

+ for (i = 1 ; i < argc; i++) { + if ( !strcmp(argv[i], "--help") ) + usage(rev_list_usage); + if ( !strcmp(argv[i], "--") ) + break; + }

So that you don't break in the perverse but legal case of having a file named "--help".

Alex Riesen· Feb 19, 2006, 18:39 UTC · re: linux@horizon.com · lore
linux@horizon.com, Sun, Feb 19, 2006 12:26:27 +0100:
Show 15 quoted lines
> >+	for (i = 1 ; i < argc; i++)
> >+	    if ( !strcmp(argv[i], "--help") )
> >+		usage(rev_list_usage);
> 
> You might want to try something more like:
> 
> +	for (i = 1 ; i < argc; i++) {
> +	    if ( !strcmp(argv[i], "--help") )
> +		usage(rev_list_usage);
> +	    if ( !strcmp(argv[i], "--") )
> +		break;
> +	}
> 
> So that you don't break in the perverse but legal case of
> having a file named "--help".
Of course. Thanks!
Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
---
Show changes to rev-list.c +10 −2
diff --git a/rev-list.c b/rev-list.c
index f2d1105..bcb492e 100644
--- a/rev-list.c
+++ b/rev-list.c
@@ -755,11 +755,20 @@ static void handle_all(struct commit_lis
 
 int main(int argc, const char **argv)
 {
-	const char *prefix = setup_git_directory();
+	const char *prefix;
 	struct commit_list *list = NULL;
 	int i, limited = 0;
 
 	for (i = 1 ; i < argc; i++) {
+	    if ( !strcmp(argv[i], "--help") )
+		usage(rev_list_usage);
+	    if ( !strcmp(argv[i], "--") )
+		break;
+	}
+
+	prefix = setup_git_directory();
+
+	for (i = 1 ; i < argc; i++) {
 		int flags;
 		const char *arg = argv[i];
 		char *dotdot;
--
1.2.2.gbc57
linux@horizon.com· Feb 19, 2006, 19:39 UTC · re: Johannes Schindelin · lore
> can someone please enlighten me why you need to see the usage, when you 
> cannot execute the command anyway?

Because you're writing a script, or explaining it to someone over the phone, or writing shell autocompletion macros, otherwise using it in some kind of delayed or deferred way.

These ain't no steenkin GUI tools; they can be used in more ways that typed interactively for immediate execution.

(Have you ever noticed how all the GUI people have rediscovered the
concept of a pathname and a single-character directory separator when
explaining how to navigate a menu/dialog maze?  The character '>' seems
to be popular.
	Go to menu A
	Then go to submenu B
	Then select item C to open a dialog
	Then go to tab D of that dialog.
	Then hit the "Advanced options" button
	Then select tab E of that dialog
	Then select option F
How exactly is this is an improvement over A/B/C/D/Advanced options/E/F?)
A Large Angry SCM· Feb 19, 2006, 19:40 UTC · re: Johannes Schindelin · lore
Johannes Schindelin wrote:
Show 7 quoted lines
> Hi,
> 
> can someone please enlighten me why you need to see the usage, when you 
> cannot execute the command anyway?
> 
> Puzzled,
> Dscho

How about so that you can find the options needed to run the command in another window where it will work.

Junio C Hamano· Feb 20, 2006, 05:52 UTC · re: Johannes Schindelin · lore
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> can someone please enlighten me why you need to see the usage, when you 
> cannot execute the command anyway?

I think Pasky gave rev-list just as an example, as I am sure there are other lowlevel core tools, that share this same unfriendliness. Primarily, these tools are meant for scripting, and not for end-user interactive use. For this reason, it is not high on my priority list to add --help to the lowlevel core tools, although it would be nicer to have.

← back to recent threads