* merge --no-ff is NOT mentioned in help @ 2016-11-16 15:16 Vanderhoof, Tzadik 2016-11-16 15:36 ` Mike Rappazzo 0 siblings, 1 reply; 9+ messages in thread From: Vanderhoof, Tzadik @ 2016-11-16 15:16 UTC (permalink / raw) To: git@vger.kernel.org When I do: "git merge -h" to get help, the option "--no-ff" is left out of the list of options. This e-mail, including attachments, may include confidential and/or proprietary information, and may be used only by the person or entity to which it is addressed. If the reader of this e-mail is not the intended recipient or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: merge --no-ff is NOT mentioned in help 2016-11-16 15:16 merge --no-ff is NOT mentioned in help Vanderhoof, Tzadik @ 2016-11-16 15:36 ` Mike Rappazzo 2016-11-16 15:48 ` Vanderhoof, Tzadik 0 siblings, 1 reply; 9+ messages in thread From: Mike Rappazzo @ 2016-11-16 15:36 UTC (permalink / raw) To: Vanderhoof, Tzadik; +Cc: git@vger.kernel.org On Wed, Nov 16, 2016 at 10:16 AM, Vanderhoof, Tzadik <tzadik.vanderhoof@optum360.com> wrote: > When I do: "git merge -h" to get help, the option "--no-ff" is left out of the list of options. I am running git version 2.10.0, and running git merge --help contains these lines: --ff When the merge resolves as a fast-forward, only update the branch pointer, without creating a merge commit. This is the default behavior. --no-ff Create a merge commit even when the merge resolves as a fast-forward. This is the default behaviour when merging an annotated (and possibly signed) tag. --ff-only Refuse to merge and exit with a non-zero status unless the current HEAD is already up-to-date or the merge can be resolved as a fast-forward. > > This e-mail, including attachments, may include confidential and/or > proprietary information, and may be used only by the person or entity > to which it is addressed. If the reader of this e-mail is not the intended > recipient or his or her authorized agent, the reader is hereby notified > that any dissemination, distribution or copying of this e-mail is > prohibited. If you have received this e-mail in error, please notify the > sender by replying to this message and delete this e-mail immediately. > ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: merge --no-ff is NOT mentioned in help 2016-11-16 15:36 ` Mike Rappazzo @ 2016-11-16 15:48 ` Vanderhoof, Tzadik 2016-11-16 15:57 ` Mike Rappazzo 0 siblings, 1 reply; 9+ messages in thread From: Vanderhoof, Tzadik @ 2016-11-16 15:48 UTC (permalink / raw) To: Mike Rappazzo; +Cc: git@vger.kernel.org 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 --stat show a diffstat at the end of the merge --summary (synonym to --stat) --log[=<n>] add (at most <n>) entries from shortlog to merge commit message --squash create a single commit instead of doing a merge --commit perform a commit if the merge succeeds (default) -e, --edit edit message before committing --ff allow fast-forward (default) --ff-only abort if fast-forward is not possible --rerere-autoupdate update the index with reused conflict resolution if possible --verify-signatures verify that the named commit has a valid GPG signature -s, --strategy <strategy> merge strategy to use -X, --strategy-option <option=value> option for selected merge strategy -m, --message <message> merge commit message (for a non-fast-forward merge) -v, --verbose be more verbose -q, --quiet be more quiet --abort abort the current in-progress merge --allow-unrelated-histories allow merging unrelated histories --progress force progress reporting -S, --gpg-sign[=<key-id>] GPG sign commit --overwrite-ignore update ignored files (default) Notice there is NO mention of the "--no-ff" option -----Original Message----- From: Mike Rappazzo [mailto:rappazzo@gmail.com] Sent: Wednesday, November 16, 2016 7:37 AM To: Vanderhoof, Tzadik Cc: git@vger.kernel.org Subject: Re: merge --no-ff is NOT mentioned in help On Wed, Nov 16, 2016 at 10:16 AM, Vanderhoof, Tzadik <tzadik.vanderhoof@optum360.com> wrote: > When I do: "git merge -h" to get help, the option "--no-ff" is left out of the list of options. I am running git version 2.10.0, and running git merge --help contains these lines: --ff When the merge resolves as a fast-forward, only update the branch pointer, without creating a merge commit. This is the default behavior. --no-ff Create a merge commit even when the merge resolves as a fast-forward. This is the default behaviour when merging an annotated (and possibly signed) tag. --ff-only Refuse to merge and exit with a non-zero status unless the current HEAD is already up-to-date or the merge can be resolved as a fast-forward. This e-mail, including attachments, may include confidential and/or proprietary information, and may be used only by the person or entity to which it is addressed. If the reader of this e-mail is not the intended recipient or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: merge --no-ff is NOT mentioned in help 2016-11-16 15:48 ` Vanderhoof, Tzadik @ 2016-11-16 15:57 ` Mike Rappazzo 2016-11-17 14:03 ` Vanderhoof, Tzadik 2016-11-17 17:10 ` Junio C Hamano 0 siblings, 2 replies; 9+ messages in thread From: Mike Rappazzo @ 2016-11-16 15:57 UTC (permalink / raw) To: Vanderhoof, Tzadik; +Cc: git@vger.kernel.org (Please reply inline) On Wed, Nov 16, 2016 at 10:48 AM, Vanderhoof, Tzadik <tzadik.vanderhoof@optum360.com> 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 > --stat show a diffstat at the end of the merge > --summary (synonym to --stat) > --log[=<n>] add (at most <n>) entries from shortlog to merge commit message > --squash create a single commit instead of doing a merge > --commit perform a commit if the merge succeeds (default) > -e, --edit edit message before committing > --ff allow fast-forward (default) > --ff-only abort if fast-forward is not possible > --rerere-autoupdate update the index with reused conflict resolution if possible > --verify-signatures verify that the named commit has a valid GPG signature > -s, --strategy <strategy> > merge strategy to use > -X, --strategy-option <option=value> > option for selected merge strategy > -m, --message <message> > merge commit message (for a non-fast-forward merge) > -v, --verbose be more verbose > -q, --quiet be more quiet > --abort abort the current in-progress merge > --allow-unrelated-histories > allow merging unrelated histories > --progress force progress reporting > -S, --gpg-sign[=<key-id>] > GPG sign commit > --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. > > -----Original Message----- > From: Mike Rappazzo [mailto:rappazzo@gmail.com] > Sent: Wednesday, November 16, 2016 7:37 AM > To: Vanderhoof, Tzadik > Cc: git@vger.kernel.org > Subject: Re: merge --no-ff is NOT mentioned in help > > On Wed, Nov 16, 2016 at 10:16 AM, Vanderhoof, Tzadik <tzadik.vanderhoof@optum360.com> wrote: >> When I do: "git merge -h" to get help, the option "--no-ff" is left out of the list of options. > > I am running git version 2.10.0, and running git merge --help contains these lines: > > --ff > When the merge resolves as a fast-forward, only update the branch pointer, without creating a merge commit. This is the default behavior. > > --no-ff > Create a merge commit even when the merge resolves as a fast-forward. This is the default behaviour when merging an annotated (and possibly signed) tag. > > --ff-only > Refuse to merge and exit with a non-zero status unless the current HEAD is already up-to-date or the merge can be resolved as a fast-forward. > > > > This e-mail, including attachments, may include confidential and/or > proprietary information, and may be used only by the person or entity > to which it is addressed. If the reader of this e-mail is not the intended > recipient or his or her authorized agent, the reader is hereby notified > that any dissemination, distribution or copying of this e-mail is > prohibited. If you have received this e-mail in error, please notify the > sender by replying to this message and delete this e-mail immediately. ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: merge --no-ff is NOT mentioned in help 2016-11-16 15:57 ` Mike Rappazzo @ 2016-11-17 14:03 ` Vanderhoof, Tzadik 2016-11-17 17:10 ` Junio C Hamano 1 sibling, 0 replies; 9+ messages in thread From: Vanderhoof, Tzadik @ 2016-11-17 14:03 UTC (permalink / raw) To: Mike Rappazzo; +Cc: git@vger.kernel.org -----Original Message----- From: Mike Rappazzo [mailto:rappazzo@gmail.com] Sent: Wednesday, November 16, 2016 7:58 AM To: Vanderhoof, Tzadik Cc: git@vger.kernel.org Subject: Re: merge --no-ff is NOT mentioned in help >(Please reply inline) > >On Wed, Nov 16, 2016 at 10:48 AM, Vanderhoof, Tzadik <tzadik.vanderhoof@optum360.com> 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 >> --stat show a diffstat at the end of the merge >> --summary (synonym to --stat) >> --log[=<n>] add (at most <n>) entries from shortlog to merge commit message >> --squash create a single commit instead of doing a merge >> --commit perform a commit if the merge succeeds (default) >> -e, --edit edit message before committing >> --ff allow fast-forward (default) >> --ff-only abort if fast-forward is not possible >> --rerere-autoupdate update the index with reused conflict resolution if possible >> --verify-signatures verify that the named commit has a valid GPG signature >> -s, --strategy <strategy> >> merge strategy to use >> -X, --strategy-option <option=value> >> option for selected merge strategy >> -m, --message <message> >> merge commit message (for a non-fast-forward merge) >> -v, --verbose be more verbose >> -q, --quiet be more quiet >> --abort abort the current in-progress merge >> --allow-unrelated-histories >> allow merging unrelated histories >> --progress force progress reporting >> -S, --gpg-sign[=<key-id>] >> GPG sign commit >> --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. > Would you accept a pull request from me for this change? > >> >> -----Original Message----- >> From: Mike Rappazzo [mailto:rappazzo@gmail.com] >> Sent: Wednesday, November 16, 2016 7:37 AM >> To: Vanderhoof, Tzadik >> Cc: git@vger.kernel.org >> Subject: Re: merge --no-ff is NOT mentioned in help >> >> On Wed, Nov 16, 2016 at 10:16 AM, Vanderhoof, Tzadik <tzadik.vanderhoof@optum360.com> wrote: >>> When I do: "git merge -h" to get help, the option "--no-ff" is left out of the list of options. >> >> I am running git version 2.10.0, and running git merge --help contains these lines: >> >> --ff >> When the merge resolves as a fast-forward, only update the branch pointer, without creating a merge commit. This is the default behavior. >> >> --no-ff >> Create a merge commit even when the merge resolves as a fast-forward. This is the default behaviour when merging an annotated (and possibly signed) tag. >> >> --ff-only >> Refuse to merge and exit with a non-zero status unless the current HEAD is already up-to-date or the merge can be resolved as a fast-forward. This e-mail, including attachments, may include confidential and/or proprietary information, and may be used only by the person or entity to which it is addressed. If the reader of this e-mail is not the intended recipient or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: merge --no-ff is NOT mentioned in help 2016-11-16 15:57 ` Mike Rappazzo 2016-11-17 14:03 ` Vanderhoof, Tzadik @ 2016-11-17 17:10 ` Junio C Hamano 2016-11-17 19:18 ` Torsten Bögershausen 2016-11-17 22:21 ` Jeff King 1 sibling, 2 replies; 9+ messages in thread From: Junio C Hamano @ 2016-11-17 17:10 UTC (permalink / raw) To: Mike Rappazzo; +Cc: Vanderhoof, Tzadik, git@vger.kernel.org Mike Rappazzo <rappazzo@gmail.com> writes: > (Please reply inline) Indeed ;-) > On Wed, Nov 16, 2016 at 10:48 AM, Vanderhoof, Tzadik > <tzadik.vanderhoof@optum360.com> 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")); ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: merge --no-ff is NOT mentioned in help 2016-11-17 17:10 ` Junio C Hamano @ 2016-11-17 19:18 ` Torsten Bögershausen 2016-11-17 22:21 ` Jeff King 1 sibling, 0 replies; 9+ messages in thread From: Torsten Bögershausen @ 2016-11-17 19:18 UTC (permalink / raw) To: Junio C Hamano, Mike Rappazzo; +Cc: Vanderhoof, Tzadik, git@vger.kernel.org On 17/11/16 18:10, Junio C Hamano wrote: > Mike Rappazzo <rappazzo@gmail.com> writes: > >> (Please reply inline) > Indeed ;-) > >> On Wed, Nov 16, 2016 at 10:48 AM, Vanderhoof, Tzadik >> <tzadik.vanderhoof@optum360.com> 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) ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: merge --no-ff is NOT mentioned in help 2016-11-17 17:10 ` Junio C Hamano 2016-11-17 19:18 ` Torsten Bögershausen @ 2016-11-17 22:21 ` Jeff King 2016-11-18 14:51 ` Vanderhoof, Tzadik 1 sibling, 1 reply; 9+ messages in thread From: Jeff King @ 2016-11-17 22:21 UTC (permalink / raw) To: Junio C Hamano; +Cc: Mike Rappazzo, Vanderhoof, Tzadik, git@vger.kernel.org On Thu, Nov 17, 2016 at 09:10:22AM -0800, Junio C Hamano wrote: > 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. The output is less ugly than I expected, but still a bit cluttered IMHO. I was surprised that the column-adjustment did not need tweaked, but the code correctly increments "pos" from the return value of fprintf, which just works. Looking at the output for --ff, though: --[no-]ff allow fast-forward (default) I do not think it's improving the situation nearly as much as if we made the primary option "--no-ff" with a NONEG flga, and then added back in a HIDDEN "--ff". I thought we had done that in other cases, but I can't seem to find any. But it would make "--no-ff" the primary form, which makes sense, as "--ff" is already the default. Another option would be to teach parse-options to somehow treat the negated form as primary in the help text. That's a bit more code, but might be usable in other places. -Peff ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: merge --no-ff is NOT mentioned in help 2016-11-17 22:21 ` Jeff King @ 2016-11-18 14:51 ` Vanderhoof, Tzadik 0 siblings, 0 replies; 9+ messages in thread From: Vanderhoof, Tzadik @ 2016-11-18 14:51 UTC (permalink / raw) To: Jeff King, Junio C Hamano; +Cc: Mike Rappazzo, git@vger.kernel.org > On Thu, Nov 17, 2016 at 09:10:22AM -0800, Junio C Hamano wrote: > > > 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. > > The output is less ugly than I expected, but still a bit cluttered IMHO. > I was surprised that the column-adjustment did not need tweaked, but the code correctly increments "pos" from the return value of fprintf, which just works. > > Looking at the output for --ff, though: > > --[no-]ff allow fast-forward (default) > > I do not think it's improving the situation nearly as much as if we made the primary option "--no-ff" with a NONEG flga, and then added back in a HIDDEN "--ff". I thought we had done that in other cases, but I can't seem to find any. But it would make "--no-ff" the primary form, which makes sense, as "--ff" is already the default. > > Another option would be to teach parse-options to somehow treat the negated form as primary in the help text. That's a bit more code, but might be usable in other places. > > -Peff > What about leaving the help as is, but adding a sentence at the end (or beginning?) like: "The following options may be negated by adding 'no-' after the double dashes"? This e-mail, including attachments, may include confidential and/or proprietary information, and may be used only by the person or entity to which it is addressed. If the reader of this e-mail is not the intended recipient or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2016-11-18 14:51 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-11-16 15:16 merge --no-ff is NOT mentioned in help Vanderhoof, Tzadik 2016-11-16 15:36 ` Mike Rappazzo 2016-11-16 15:48 ` Vanderhoof, Tzadik 2016-11-16 15:57 ` Mike Rappazzo 2016-11-17 14:03 ` Vanderhoof, Tzadik 2016-11-17 17:10 ` Junio C Hamano 2016-11-17 19:18 ` Torsten Bögershausen 2016-11-17 22:21 ` Jeff King 2016-11-18 14:51 ` Vanderhoof, Tzadik
Code repositories for project(s) associated with this public inbox https://80x24.org/mirrors/git.git 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 read-only IMAP folder(s) and NNTP newsgroup(s).