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

Re: [PATCH v12 3/8] graph: add support for --line-prefix on all graph-aware output

From
Jacob Keller <jacob.keller@gmail.com>
Date
Oct 19, 2016, 22:13 UTC
Message-ID
<CA+P7+xo65Wg+jTkGTBW87Xv8O5-FO9EWqkpinfW48jBMG_oNrQ@mail.gmail.com>
In-Reply-To
<1476908699.26043.9.camel@kaarsemaker.net>
Hi,

On Wed, Oct 19, 2016 at 1:24 PM, Dennis Kaarsemaker <dennis@kaarsemaker.net> wrote:

Show 9 quoted lines
> On Wed, 2016-08-31 at 16:27 -0700, Jacob Keller wrote:
>> From: Jacob Keller <jacob.keller@gmail.com>
>>
>> Add an extension to git-diff and git-log (and any other graph-aware
>> displayable output) such that "--line-prefix=<string>" will print the
>> additional line-prefix on every line of output.
>
> This patch breaks git rev-list --header, also breaking gitweb.
>
Oops! Is it possible you have a test case already?
> The NUL between commits has gone missing, causing gitweb to interpret
> the output of git rev-list as one commit.
>
That is obviously not what we want!
Show 6 quoted lines
> Sorry for not catching this earlier, I actually encountered this early
> september but thought it was caused by us running an ancient gitweb
> with a modern git. Finally managed to upgrade gitweb today, and the bug
> didn't go away. git bisect says 660e113ce is the culprit. Checking out
> 'next' and reverting this single patch makes the problem disappear.
>
Ok.
> Haven't yet tried to fix the bug, but this hunk looks suspicious:
Show 13 quoted lines
>
> -                       if (revs->commit_format != CMIT_FMT_USERFORMAT ||
> -                           buf.len) {
> -                               fwrite(buf.buf, 1, buf.len, stdout);
> -                               putchar(info->hdr_termination);
> -                       }
> +                       /*
> +                        * If the message buffer is empty, just show
> +                        * the rest of the graph output for this
> +                        * commit.
> +                        */
> +                       if (graph_show_remainder(revs->graph))
> +                               putchar('\n');

Most likely this should have been "putchar(info->hdr_termination);" I think? Not entirely sure.

If we can get a test case in we can use that to help debug the issue.

Thanks, Jake

> +                       if (revs->commit_format == CMIT_FMT_ONELINE)
> +
>
> D.
Previous: Torsten BögershausenNext: Jacob Keller
Message 20 of 23 in “submodule inline diff format”
  1. 0/8 submodule inline diff formatJacob Keller, Aug 31, 2016
  2. 1/8 cache: add empty_tree_oid object and helper functionJacob Keller, Aug 31, 2016
  3. 8/8 diff: teach diff to display submodule difference with an inline diffJacob Keller, Aug 31, 2016
  4. 7/8 submodule: refactor show_submodule_summary with helper functionJacob Keller, Aug 31, 2016
  5. 6/8 submodule: convert show_submodule_summary to use struct object_id *Jacob Keller, Aug 31, 2016
  6. 5/8 allow do_submodule_path to work even if submodule isn't checked outJacob Keller, Aug 31, 2016
  7. 4/8 diff: prepare for additional submodule formatsJacob Keller, Aug 31, 2016
  8. 3/8 graph: add support for --line-prefix on all graph-aware outputJacob Keller, Aug 31, 2016
  9. Dennis KaarsemakerOct 19, 2016
  10. rev-list: restore the NUL commit separator in --header modeDennis Kaarsemaker, Oct 19, 2016
  11. Jacob KellerOct 19, 2016
  12. Junio C HamanoOct 19, 2016
  13. Keller, Jacob EOct 20, 2016
  14. Dennis KaarsemakerOct 20, 2016
  15. Junio C HamanoOct 19, 2016
  16. Dennis KaarsemakerOct 20, 2016
  17. Jacob KellerOct 20, 2016
  18. Junio C HamanoOct 20, 2016
  19. Torsten BögershausenOct 20, 2016
  20. Jacob KellerOct 19, 2016
  21. 2/8 diff.c: remove output_prefix_length fieldJacob Keller, Aug 31, 2016
  22. Stefan BellerAug 31, 2016
  23. Junio C HamanoSep 1, 2016

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.