Re: merge --no-ff is NOT mentioned in help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 17/11/16 18:10, Junio C Hamano wrote:
Mike Rappazzo <rappazzo@xxxxxxxxx> writes:

(Please reply inline)
Indeed ;-)

On Wed, Nov 16, 2016 at 10:48 AM, Vanderhoof, Tzadik
<tzadik.vanderhoof@xxxxxxxxxxxx> wrote:
I am running:    git version 2.10.1.windows.1

I typed: git merge -h

and got:

usage: git merge [<options>] [<commit>...]
    or: git merge [<options>] <msg> HEAD <commit>
    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)




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]