git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/5] diff: allow --patch to override -s/--no-patch

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 15, 2013, 15:02 UTC
Message-ID
<7v61wbeuix.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1373893639-13413-3-git-send-email-Matthieu.Moy@imag.fr>
Matthieu Moy <Matthieu.Moy@imag.fr> writes:
Show 22 quoted lines
> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
> ---
>  diff.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/diff.c b/diff.c
> index 6bd821d..66a6877 100644
> --- a/diff.c
> +++ b/diff.c
> @@ -3515,9 +3515,10 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)
>  	int argcount;
>  
>  	/* Output format options */
> -	if (!strcmp(arg, "-p") || !strcmp(arg, "-u") || !strcmp(arg, "--patch"))
> +	if (!strcmp(arg, "-p") || !strcmp(arg, "-u") || !strcmp(arg, "--patch")) {
> +		options->output_format &= ~DIFF_FORMAT_NO_OUTPUT;
>  		options->output_format |= DIFF_FORMAT_PATCH;
> -	else if (opt_arg(arg, 'U', "unified", &options->context))
> +	} else if (opt_arg(arg, 'U', "unified", &options->context))
>  		options->output_format |= DIFF_FORMAT_PATCH;
>  	else if (!strcmp(arg, "--raw"))
>  		options->output_format |= DIFF_FORMAT_RAW;

I am wondering if the difference after this patch between "-p" and "-U8" is deliberate, or just an accident coming from the way the original was written in ee1e5412 (git diff: support "-U" and "--unified" options properly, 2006-05-13).

If the original were written in this way:
	if (!strcmp(arg, "-p") || !strcmp(arg, "-u") || !strcmp(arg, "--patch") ||
            opt_arg(arg, 'U', "unified", &options->context))
  		options->output_format |= DIFF_FORMAT_PATCH;
I suspect you would have given the additional
		options->output_format &= ~DIFF_FORMAT_NO_OUTPUT;

to the whole thing, without singling out "-U8". Or am I missing some good reason why "--no-patch -U8" should not produce a patch, while "--no-patch -p" and "-U8" should both should?

Previous: Matthieu MoyNext: Matthieu Moy
Message 7 of 43 in “Bug in "git show"?”
  1. Stefan BellerJul 15, 2013
  2. Matthieu MoyJul 15, 2013
  3. Stefan BellerJul 15, 2013
  4. 0/5 Make "git show -s" easier to discover for usersMatthieu Moy, Jul 15, 2013
  5. 1/5 diff: allow --no-patch as synonym for -sMatthieu Moy, Jul 15, 2013
  6. 2/5 diff: allow --patch to override -s/--no-patchMatthieu Moy, Jul 15, 2013
  7. Junio C HamanoJul 15, 2013
  8. Matthieu MoyJul 15, 2013
  9. Junio C HamanoJul 15, 2013
  10. 0/5 Make "git show -s" easier to discover for usersMatthieu Moy, Jul 15, 2013
  11. 1/5 diff: allow --no-patch as synonym for -sMatthieu Moy, Jul 15, 2013
  12. Jonathan NiederJul 15, 2013
  13. 0/6 Make "git show -s" easier to discover for usersMatthieu Moy, Jul 15, 2013
  14. 1/6 t4000-diff-format.sh: modernize styleMatthieu Moy, Jul 15, 2013
  15. Jonathan NiederJul 15, 2013
  16. 2/6 diff: allow --no-patch as synonym for -sMatthieu Moy, Jul 15, 2013
  17. 3/6 diff: allow --patch & cie to override -s/--no-patchMatthieu Moy, Jul 15, 2013
  18. Jonathan NiederJul 15, 2013
  19. Matthieu MoyJul 15, 2013
  20. Jonathan NiederJul 15, 2013
  21. 0/6 Make "git show -s" easier to discover for usersMatthieu Moy, Jul 16, 2013
  22. 1/6 t4000-diff-format.sh: modernize styleMatthieu Moy, Jul 16, 2013
  23. 2/6 diff: allow --no-patch as synonym for -sMatthieu Moy, Jul 16, 2013
  24. 3/6 diff: allow --patch & cie to override -s/--no-patchMatthieu Moy, Jul 16, 2013
  25. 4/6 Documentation/git-show.txt: include common diff options, like git-log.txtMatthieu Moy, Jul 16, 2013
  26. 5/6 Documentation: move description of -s, --no-patch to diff-options.txtMatthieu Moy, Jul 16, 2013
  27. 6/6 Documentation/git-log.txt: capitalize section namesMatthieu Moy, Jul 16, 2013
  28. Jonathan NiederJul 16, 2013
  29. Stefan BellerJul 16, 2013
  30. Junio C HamanoJul 18, 2013
  31. 4/6 Documentation/git-show.txt: include common diff options, like git-log.txtMatthieu Moy, Jul 15, 2013
  32. 5/6 Documentation: move description of -s, --no-patch to diff-options.txtMatthieu Moy, Jul 15, 2013
  33. 6/6 Documentation/git-log.txt: capitalize section namesMatthieu Moy, Jul 15, 2013
  34. Jonathan NiederJul 15, 2013
  35. 2/5 diff: allow --patch & cie to override -s/--no-patchMatthieu Moy, Jul 15, 2013
  36. 3/5 Documentation/git-show.txt: include common diff options, like git-log.txtMatthieu Moy, Jul 15, 2013
  37. 4/5 Documentation: move description of -s, --no-patch to diff-options.txtMatthieu Moy, Jul 15, 2013
  38. 5/5 Documentation/git-log.txt: capitalize section namesMatthieu Moy, Jul 15, 2013
  39. 3/5 Documentation/git-show.txt: include common diff options, like git-log.txtMatthieu Moy, Jul 15, 2013
  40. Junio C HamanoJul 15, 2013
  41. Junio C HamanoJul 15, 2013
  42. 4/5 Documentation: move description of -s, --no-patch to diff-options.txtMatthieu Moy, Jul 15, 2013
  43. 5/5 Documentation/git-log.txt: capitalize section namesMatthieu Moy, Jul 15, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.