From: Torsten Bögershausen Date: Thu, 17 Nov 2016 19:18:22 GMT Subject: Re: merge --no-ff is NOT mentioned in help Message-ID: In-Reply-To: On 17/11/16 18:10, Junio C Hamano wrote: > Mike Rappazzo writes: > >> (Please reply inline) > Indeed ;-) > >> On Wed, Nov 16, 2016 at 10:48 AM, Vanderhoof, Tzadik >> wrote: >>> I am running: git version 2.10.1.windows.1 >>> >>> I typed: git merge -h >>> >>> and got: >>> >>> usage: git merge [] [...] >>> or: git merge [] HEAD >>> or: git merge --abort >>> >>> -n do not show a diffstat at the end of the merge >>> ... >>> --overwrite-ignore update ignored files (default) >>> >>> Notice there is NO mention of the "--no-ff" option >> I understand. On my system I can reproduce this by providing a bad >> argument to `git merge`. This is the output from the arg setup. For >> "boolean" arguments (like '--ff'), there is an automatic counter >> argument with "no-" in there ('--no-ff') to disable the option. Maybe >> it would make sense to word the output to include both. > I think that was a deliberate design decision to avoid cluttering > the short help text with mention of both --option and --no-option. > > People interested may want to try the attached single-liner patch to > see how the output from _ALL_ commands that use parse-options API > looks when given "-h". It could be that the result may not be too > bad. > > I suspect that we may discover that some options that should be > marked with NONEG are not marked along the way, which need to be > fixed. > > > parse-options.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/parse-options.c b/parse-options.c > index 312a85dbde..348be6b240 100644 > --- a/parse-options.c > +++ b/parse-options.c > @@ -626,7 +626,9 @@ 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); > + pos += fprintf(outfile, "--%s%s", > + (opts->flags & PARSE_OPT_NONEG) ? "" : "[no-]", > + opts->long_name); > if (opts->type == OPTION_NUMBER) > pos += utf8_fprintf(outfile, _("-NUM")); > +1 from my side (As I once spend some time to find out that the "no--" is automatically available)