* [PATCH] grep: correct help string for --exclude-standard @ 2015-02-27 14:01 Nguyễn Thái Ngọc Duy 2015-03-04 10:16 ` Jeff King 0 siblings, 1 reply; 5+ messages in thread From: Nguyễn Thái Ngọc Duy @ 2015-02-27 14:01 UTC (permalink / raw) To: git; +Cc: Junio C Hamano, Nguyễn Thái Ngọc Duy The current help string is about --no-exclude-standard. But "git grep -h" would show --exclude-standard instead. Flip the string. See 0a93fb8 (grep: teach --untracked and --exclude-standard options - 2011-09-27) for more info about these options. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- builtin/grep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/grep.c b/builtin/grep.c index 4063882..e77f7cf 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -641,7 +641,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix) OPT_BOOL(0, "untracked", &untracked, N_("search in both tracked and untracked files")), OPT_SET_INT(0, "exclude-standard", &opt_exclude, - N_("search also in ignored files"), 1), + N_("ignore files specified via '.gitignore'"), 1), OPT_GROUP(""), OPT_BOOL('v', "invert-match", &opt.invert, N_("show non-matching lines")), -- 2.3.0.rc1.137.g477eb31 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] grep: correct help string for --exclude-standard 2015-02-27 14:01 [PATCH] grep: correct help string for --exclude-standard Nguyễn Thái Ngọc Duy @ 2015-03-04 10:16 ` Jeff King 2015-03-04 11:13 ` Duy Nguyen 0 siblings, 1 reply; 5+ messages in thread From: Jeff King @ 2015-03-04 10:16 UTC (permalink / raw) To: Nguyễn Thái Ngọc Duy; +Cc: git, Junio C Hamano On Fri, Feb 27, 2015 at 09:01:58PM +0700, Nguyễn Thái Ngọc Duy wrote: > The current help string is about --no-exclude-standard. But "git grep -h" > would show --exclude-standard instead. Flip the string. See 0a93fb8 > (grep: teach --untracked and --exclude-standard options - 2011-09-27) > for more info about these options. > > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> > --- > builtin/grep.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/builtin/grep.c b/builtin/grep.c > index 4063882..e77f7cf 100644 > --- a/builtin/grep.c > +++ b/builtin/grep.c > @@ -641,7 +641,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix) > OPT_BOOL(0, "untracked", &untracked, > N_("search in both tracked and untracked files")), > OPT_SET_INT(0, "exclude-standard", &opt_exclude, > - N_("search also in ignored files"), 1), > + N_("ignore files specified via '.gitignore'"), 1), Hmm. If the default is "--exclude-standard", then what expect people to use is "--no-exclude-standard". Would it make more sense to list that in the "-h" output? Sadly I think to do that you have to manually specify "--no-exclude-standard" with OPT_NONEG, and then manually specify "--exclude-standard" in addition with OPT_HIDDEN. It might be nice if parseopt had a PARSE_OPT_NEGHELP option or something to show the "--no-" form. Something like: diff --git a/builtin/grep.c b/builtin/grep.c index 9262b73..c03c3e7 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -640,8 +640,10 @@ int cmd_grep(int argc, const char **argv, const char *prefix) N_("find in contents not managed by git"), 1), OPT_BOOL(0, "untracked", &untracked, N_("search in both tracked and untracked files")), - OPT_SET_INT(0, "exclude-standard", &opt_exclude, - N_("search also in ignored files"), 1), + { OPTION_SET_INT, 0, "exclude-standard", &opt_exclude, + NULL, N_("search also in ignored files"), + PARSE_OPT_NOARG | PARSE_OPT_NEGHELP, + NULL, 1 }, OPT_GROUP(""), OPT_BOOL('v', "invert-match", &opt.invert, N_("show non-matching lines")), diff --git a/parse-options.c b/parse-options.c index 80106c0..0ba7dc4 100644 --- a/parse-options.c +++ b/parse-options.c @@ -599,8 +599,12 @@ static int usage_with_options_internal(struct parse_opt_ctx_t *ctx, } if (opts->long_name && opts->short_name) pos += fprintf(outfile, ", "); - if (opts->long_name) - pos += fprintf(outfile, "--%s", opts->long_name); + if (opts->long_name) { + int neg = opts->flags & PARSE_OPT_NEGHELP; + pos += fprintf(outfile, "--%s%s", + neg ? "no-" : "", + opts->long_name); + } if (opts->type == OPTION_NUMBER) pos += utf8_fprintf(outfile, _("-NUM")); diff --git a/parse-options.h b/parse-options.h index 7940bc7..e688c32 100644 --- a/parse-options.h +++ b/parse-options.h @@ -37,6 +37,7 @@ enum parse_opt_option_flags { PARSE_OPT_LASTARG_DEFAULT = 16, PARSE_OPT_NODASH = 32, PARSE_OPT_LITERAL_ARGHELP = 64, + PARSE_OPT_NEGHELP = 128, PARSE_OPT_SHELL_EVAL = 256 }; Though it is annoying that we have to give up the nice OPT_SET_INT macro to specify an extra flag. -Peff ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] grep: correct help string for --exclude-standard 2015-03-04 10:16 ` Jeff King @ 2015-03-04 11:13 ` Duy Nguyen 2015-03-04 11:26 ` Jeff King 0 siblings, 1 reply; 5+ messages in thread From: Duy Nguyen @ 2015-03-04 11:13 UTC (permalink / raw) To: Jeff King; +Cc: Git Mailing List, Junio C Hamano On Wed, Mar 4, 2015 at 5:16 PM, Jeff King <peff@peff.net> wrote: > Hmm. If the default is "--exclude-standard", then what expect people to > use is "--no-exclude-standard". Would it make more sense to list that in > the "-h" output? I thought about it and actually edited git-grep man page to clarify the default, only to find out this. When --untracked is used, --exclude-standard is the default. When --no-index is used, --no-exclude-standard is the default. Can't have it both ways. This is already mentioned with the subtle phrase "only useful with...". > It might be nice if parseopt had a PARSE_OPT_NEGHELP option or something > to show the "--no-" form. Regardless, yes it would be nice to have something like this. I think there are places that can make use of this. -- Duy ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] grep: correct help string for --exclude-standard 2015-03-04 11:13 ` Duy Nguyen @ 2015-03-04 11:26 ` Jeff King 2015-03-04 11:46 ` Duy Nguyen 0 siblings, 1 reply; 5+ messages in thread From: Jeff King @ 2015-03-04 11:26 UTC (permalink / raw) To: Duy Nguyen; +Cc: Git Mailing List, Junio C Hamano On Wed, Mar 04, 2015 at 06:13:32PM +0700, Duy Nguyen wrote: > On Wed, Mar 4, 2015 at 5:16 PM, Jeff King <peff@peff.net> wrote: > > Hmm. If the default is "--exclude-standard", then what expect people to > > use is "--no-exclude-standard". Would it make more sense to list that in > > the "-h" output? > > I thought about it and actually edited git-grep man page to clarify > the default, only to find out this. When --untracked is used, > --exclude-standard is the default. When --no-index is used, > --no-exclude-standard is the default. Can't have it both ways. This is > already mentioned with the subtle phrase "only useful with...". Yuck. :) I agree your patch is the right thing to do, then. > > It might be nice if parseopt had a PARSE_OPT_NEGHELP option or something > > to show the "--no-" form. > > Regardless, yes it would be nice to have something like this. I think > there are places that can make use of this. Grepping around, it looks like the best form would be an OPT_NEGBOOL that acts like a boolean but negates the truth value, and advertises the negative form. We have a lot of: OPT_BOOL('n', "no-checkout", &option_no_checkout, N_("don't create a checkout")) where countermanding an earlier "--no-checkout" has to be spelled as "--no-no-checkout", rather than "--checkout". If we could write: OPT_NEGBOOL('n', "checkout", ...) that would be nicer. But the short option is a bit weird. We'd want: -n: option_no_checkout=true --checkout: option_no_checkout=false --no-checkout: option_no_checkout=true That is, we flip the sense of the long option, but the short option still yields "true". I think that would be useful, but it sure is weird to explain. -Peff ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] grep: correct help string for --exclude-standard 2015-03-04 11:26 ` Jeff King @ 2015-03-04 11:46 ` Duy Nguyen 0 siblings, 0 replies; 5+ messages in thread From: Duy Nguyen @ 2015-03-04 11:46 UTC (permalink / raw) To: Jeff King; +Cc: Git Mailing List, Junio C Hamano On Wed, Mar 4, 2015 at 6:26 PM, Jeff King <peff@peff.net> wrote: >> > It might be nice if parseopt had a PARSE_OPT_NEGHELP option or something >> > to show the "--no-" form. >> >> Regardless, yes it would be nice to have something like this. I think >> there are places that can make use of this. > > Grepping around, it looks like the best form would be an OPT_NEGBOOL > that acts like a boolean but negates the truth value, and advertises the > negative form. We have a lot of: > > OPT_BOOL('n', "no-checkout", &option_no_checkout, > N_("don't create a checkout")) > > where countermanding an earlier "--no-checkout" has to be spelled as > "--no-no-checkout", rather than "--checkout". If we could write: > > OPT_NEGBOOL('n', "checkout", ...) > > that would be nicer. But the short option is a bit weird. We'd want: > > -n: option_no_checkout=true > --checkout: option_no_checkout=false > --no-checkout: option_no_checkout=true > > That is, we flip the sense of the long option, but the short option > still yields "true". I think that would be useful, but it sure is weird > to explain. Yeah it looks confusing.. How about leaving that first arg as the short option "checkout" and move 'n' elsewhere? Something like this OPT_NEGBOOL(0, "checkout", 'n', ....) -- Duy ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-03-04 11:47 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-02-27 14:01 [PATCH] grep: correct help string for --exclude-standard Nguyễn Thái Ngọc Duy 2015-03-04 10:16 ` Jeff King 2015-03-04 11:13 ` Duy Nguyen 2015-03-04 11:26 ` Jeff King 2015-03-04 11:46 ` Duy Nguyen
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).