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

Re: [PATCH v2 6/9] doc: notes: clearly state that --stripspace is the default

From
Junio C Hamano <gitster@pobox.com>
Date
May 23, 2025, 21:36 UTC
Message-ID
<xmqqiklrvwl4.fsf@gitster.g>
In-Reply-To
<be89c3349d24e47a38f04538d3d1e3730dfc37a9.1748028010.git.code@khaugsbakk.name>
kristofferhaugsbakk@fastmail.com writes:
Show 11 quoted lines
>       See the review on the patch:
>     
>          https://lore.kernel.org/git/xmqq4jp326oj.fsf@gitster.g/
>     
>       There was concern about the order of options:
>     
>           >     ... One more thing need to note is "the order of
>           >     the options matter", [...]
>     
>           This sounds more like a design/implementation mistake that we may
>           want to fix.

That is a comment on the 8th iteration of the series, which is different from what you are documenting, which is 11th if I am reading the thread correctly.

Comparing [v8 6/6] with [v11 6/7],

https://lore.kernel.org/git/f60f743203d78a489b90df81472e71391b45367d.1682429602.git.dyroneteng@gmail.com/ https://lore.kernel.org/git/19865941bb29c28a690ed3e28fc4f6870e352923.1685174012.git.dyroneteng@gmail.com/

I notice that the later version has .stripspace member in note_msg as well as note_data. note_data has a collection of multiple note_msg instances. Each of note_msg comes from various sources, like '-m', '-C', etc., and each of these types have hardcoded default values for note_msg.stripspace (mostly to strip but note_msg that comes from an existing note blob has stripspace unset). When concat_messages() takes note_msg instances in a note_data together, it _could_ do:

 - if note_data.stripspace is explicitly specified, use that,
   otherwise use note_msg.stripspace, to cleanse the message
   contained in note_msg.

and concatenate the results. But even at v11 of the series, the implementation of concat_messages() uses the stripspace determined to instead cleanse the concatenated result.

Which I think is simply buggy.
What it should do probably is
 - Loop over d->messages[] and:
   - if d->stripspace is set or d->messages[]->stripspace is set,
     cleanse the message (i.e. d->messages[]->buf) and append to d->buf
   - otherwise append d->messages[]->buf as-is to d->buf
 - If d->stripspace is set, cleanse d->buf (may not be necessary, as
   the messages that are concatenated have _all_ lost leading and
   trailing blank lines before concatenation).

and that would truly fix the problem pointed out during the review of v8.

Show 7 quoted lines
> +--
> ++
> +`--stripspace` is the default except for
> +`-C`/`--reuse-message`. However, keep in mind that this depends on the
> +order of similar options. For example, for `-C <object> -m<message>`,
> +`--stripspace` will be used because the default for `-m` overrides the
> +previous `-C`.

So, I think this is an accurate description of the current behaviour, but we might want to phrase the part that comes after "however" as documenting a known bug, which we would want to fix later.

Thanks.
Previous: kristofferhaugsbakk@fastmail.comNext: kristofferhaugsbakk@fastmail.com
Message 29 of 44 in “doc: --stdin on notes and core.commentChar mentions”
  1. 0/6 doc: --stdin on notes and core.commentChar mentionskristofferhaugsbakk@fastmail.com, May 20, 2025
  2. 1/6 doc: stripspace: mention where the default comes fromkristofferhaugsbakk@fastmail.com, May 20, 2025
  3. Junio C HamanoMay 20, 2025
  4. Kristoffer HaugsbakkMay 21, 2025
  5. 2/6 doc: config: mention core.commentChar on commit.cleanupkristofferhaugsbakk@fastmail.com, May 20, 2025
  6. 3/6 doc: notes: split out options with negationskristofferhaugsbakk@fastmail.com, May 20, 2025
  7. Junio C HamanoMay 20, 2025
  8. Junio C HamanoMay 21, 2025
  9. Kristoffer HaugsbakkMay 21, 2025
  10. Junio C HamanoMay 21, 2025
  11. Kristoffer HaugsbakkMay 21, 2025
  12. 4/6 doc: notes: mention comment character configurationkristofferhaugsbakk@fastmail.com, May 20, 2025
  13. Junio C HamanoMay 20, 2025
  14. 5/6 doc: notes: point out copy --stdin use with argvkristofferhaugsbakk@fastmail.com, May 20, 2025
  15. Junio C HamanoMay 20, 2025
  16. 6/6 doc: notes: treat --stdin equally between copy/removekristofferhaugsbakk@fastmail.com, May 20, 2025
  17. Junio C HamanoMay 20, 2025
  18. Kristoffer HaugsbakkMay 21, 2025
  19. D. Ben KnobleMay 21, 2025
  20. Kristoffer HaugsbakkMay 21, 2025
  21. Junio C HamanoMay 21, 2025
  22. 0/9 doc: --stdin on notes and core.commentChar mentionskristofferhaugsbakk@fastmail.com, May 23, 2025
  23. 1/9 doc: stripspace: mention where the default comes fromkristofferhaugsbakk@fastmail.com, May 23, 2025
  24. 2/9 doc: config: mention core.commentChar on commit.cleanupkristofferhaugsbakk@fastmail.com, May 23, 2025
  25. 3/9 doc: notes: split out options with negated formskristofferhaugsbakk@fastmail.com, May 23, 2025
  26. 4/9 doc: notes: rework --[no-]stripspacekristofferhaugsbakk@fastmail.com, May 23, 2025
  27. 5/9 doc: notes: remove stripspace discussion from other optionskristofferhaugsbakk@fastmail.com, May 23, 2025
  28. 6/9 doc: notes: clearly state that --stripspace is the defaultkristofferhaugsbakk@fastmail.com, May 23, 2025
  29. Junio C HamanoMay 23, 2025
  30. 7/9 doc: notes: point out copy --stdin use with argvkristofferhaugsbakk@fastmail.com, May 23, 2025
  31. 8/9 doc: notes: treat --stdin equally between copy/removekristofferhaugsbakk@fastmail.com, May 23, 2025
  32. Junio C HamanoMay 23, 2025
  33. 9/9 doc: notes: use stuck form throughoutkristofferhaugsbakk@fastmail.com, May 23, 2025
  34. 0/9 doc: --stdin on notes and core.commentChar mentionskristofferhaugsbakk@fastmail.com, May 27, 2025
  35. 1/9 doc: stripspace: mention where the default comes fromkristofferhaugsbakk@fastmail.com, May 27, 2025
  36. 2/9 doc: config: mention core.commentChar on commit.cleanupkristofferhaugsbakk@fastmail.com, May 27, 2025
  37. 3/9 doc: notes: split out options with negated formskristofferhaugsbakk@fastmail.com, May 27, 2025
  38. 4/9 doc: notes: rework --[no-]stripspacekristofferhaugsbakk@fastmail.com, May 27, 2025
  39. 5/9 doc: notes: remove stripspace discussion from other optionskristofferhaugsbakk@fastmail.com, May 27, 2025
  40. 6/9 doc: notes: clearly state that --stripspace is the defaultkristofferhaugsbakk@fastmail.com, May 27, 2025
  41. 7/9 doc: notes: point out copy --stdin use with argvkristofferhaugsbakk@fastmail.com, May 27, 2025
  42. 8/9 doc: notes: treat --stdin equally between copy/removekristofferhaugsbakk@fastmail.com, May 27, 2025
  43. 9/9 doc: notes: use stuck form throughoutkristofferhaugsbakk@fastmail.com, May 27, 2025
  44. Junio C HamanoMay 27, 2025

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.