From: Jonathan Nieder <jrnieder@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Gerfried Fuchs <rhonda@debian.at>,
462557@bugs.debian.org
Subject: Re: [PATCH] Let 'git <command> -h' show usage without a git dir
Date: Sun, 8 Nov 2009 05:03:41 -0600 [thread overview]
Message-ID: <20091108110341.GA23737@progeny.tock> (raw)
In-Reply-To: <7vvdhlfk2y.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
> Jonathan Nieder <jrnieder@gmail.com> writes:
>
>> +/*
>> + * Let RUN_SETUP, USE_PAGER, and NEED_WORK_TREE take effect even if
>> + * passed the -h option.
>> + */
>> +#define H_IS_NOT_HELP (1<<3)
>
> Yuck. Let's think of a way to avoid this ugliness.
Thank you. :)
> So I think the right approach is something like how you handled http-push;
> namely, check if the sole argument is "-h", and if so show help and exit.
>
> Clarification. the following description only talks about "cmd -h"
> without any other options and arguments.
>
> Such a change cannot be breaking backward compatibility for...
[...]
> * "grep -h" cannot be asking for suppressing filenames as there is no
> match pattern specified.
Okay, here’s a start.
-- %< --
Subject: Show usage string for 'git grep -h'
Clarification: the following description only talks about "git
grep -h" without any other options and arguments.
Such a change cannot be breaking backward compatibility. "grep
-h" cannot be asking for suppressing filenames, as there is no
match pattern specified.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
Is the long usage information really what is wanted here? (I would
think yes, since there is no other way to get that, but sometimes all
I want is a reminder of the non-optional arguments.)
Without something like the previous patch, the usage information is
captured by a pager. I know this is an accidental thing (not all
commands send their -h output through a pager), but it is very
convenient and mitigates the first effect somewhat. Should
whatever -h always use with a pager?
The -h output is very long, and since it goes to standard error,
"git grep -h | head" does not succeed in capturing the best of it.
Usage errors caught in the same function die() currently. I was going
to switch them to usage_msg_opt(), but because of the long usage
message, that would cause the error message to scroll off the
screen...
So I am not totally happy with this. But it is certainly an
improvement over the output from before:
$ git grep -h
fatal: no pattern given.
I’ll sleep on it. Thank you for the advice.
Good night,
Jonathan
builtin-grep.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/builtin-grep.c b/builtin-grep.c
index 1df25b0..01be9bf 100644
--- a/builtin-grep.c
+++ b/builtin-grep.c
@@ -788,6 +788,13 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
OPT_END()
};
+ /*
+ * 'git grep -h', unlike 'git grep -h <pattern>', is a request
+ * to show usage information and exit.
+ */
+ if (argc == 2 && !strcmp(argv[1], "-h"))
+ usage_with_options(grep_usage, options);
+
memset(&opt, 0, sizeof(opt));
opt.prefix = prefix;
opt.prefix_length = (prefix && *prefix) ? strlen(prefix) : 0;
--
1.6.5.2
next prev parent reply other threads:[~2009-11-08 10:54 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080125173149.GA10287@edna.gwendoline.at>
2009-11-08 7:11 ` [PATCH] Let 'git <command> -h' show usage without a git dir Jonathan Nieder
2009-11-08 7:26 ` [PATCH] Show usage string for 'git http-push -h' Jonathan Nieder
2009-11-09 8:52 ` Tay Ray Chuan
2009-11-09 10:47 ` [PATCH v2] " Jonathan Nieder
2009-11-09 13:56 ` Tay Ray Chuan
2009-11-08 9:21 ` [PATCH] Let 'git <command> -h' show usage without a git dir Junio C Hamano
2009-11-08 11:03 ` Jonathan Nieder [this message]
2009-11-09 15:02 ` [PATCH 00/24] " Jonathan Nieder
2009-11-09 15:04 ` [PATCH 01/24] Retire fetch--tool helper to contrib/examples Jonathan Nieder
2009-11-09 15:04 ` [PATCH 02/24] Show usage string for 'git grep -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 03/24] Show usage string for 'git cherry -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 04/24] Show usage string for 'git commit-tree -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 05/24] Show usage string for 'git merge-ours -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH/RFC 06/24] Show usage string for 'git show-ref -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 07/24] check-ref-format: update usage string Jonathan Nieder
2009-11-10 20:11 ` Junio C Hamano
2009-11-09 15:04 ` [PATCH 08/24] Show usage string for 'git check-ref-format -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 09/24] Show usage string for 'git fast-import -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 10/24] Show usage string for 'git get-tar-commit-id -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 11/24] Show usage string for 'git imap-send -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 12/24] Show usage string for 'git mailsplit -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 13/24] Show usage string for 'git merge-one-file -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 14/24] Show usage string for 'git rev-parse -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 15/24] Show usage string for 'git show-index -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 16/24] Show usage string for 'git unpack-file -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 17/24] Show usage string for 'git stripspace -h' Jonathan Nieder
2009-11-09 15:04 ` [PATCH 18/24] merge: do not setup worktree twice Jonathan Nieder
2009-11-10 20:11 ` Junio C Hamano
2009-11-11 1:58 ` Jonathan Nieder
2009-11-09 15:04 ` [PATCH 19/24] Let 'git http-fetch -h' show usage outside any git repository Jonathan Nieder
2009-11-09 15:05 ` [PATCH 20/24] http-fetch: add missing initialization of argv0_path Jonathan Nieder
2009-11-10 20:12 ` Junio C Hamano
2009-11-10 21:56 ` Johannes Sixt
2009-11-11 1:52 ` Jonathan Nieder
2009-11-09 15:05 ` [PATCH 21/24] Let 'git <command> -h' show usage without a git dir Jonathan Nieder
2009-11-09 15:05 ` [PATCH 22/24] Let usage() take a printf-style format Jonathan Nieder
2009-11-10 20:16 ` Junio C Hamano
2009-11-09 15:05 ` [PATCH 23/24] merge-{recursive,subtree}: use usage() to print usage Jonathan Nieder
2009-11-09 15:05 ` [PATCH 24/24] diff --no-index: make the usage string less scary Jonathan Nieder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20091108110341.GA23737@progeny.tock \
--to=jrnieder@gmail.com \
--cc=462557@bugs.debian.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=rhonda@debian.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).