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

Re: [PATCH v3 5/7] builtin: patch-id: add --include-whitespace as a command mode

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 17, 2022, 15:38 UTC
Message-ID
<xmqq7d0y1mw7.fsf@gitster.g>
In-Reply-To
<xmqqbkqe6qv4.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 12 quoted lines
> "Jerry Zhang via GitGitGadget" <gitgitgadget@gmail.com> writes:
>
>> +--include-whitespace::
>> +	Use the "stable" algorithm described below and also don't strip whitespace
>> +	from lines when calculating the patch-id.
>> +
>> +	This is the default if patchid.includeWhitespace is true and implies
>> +	patchid.stable.
>
> This seems very much orthogonal to "--stable/--unstable.  
>
> Because the "--stable" variant is more expensive than "--unstable",

Sorry, I misspoke. The way we make the result stable is *not* by enforcing a fixed order to the input of the hash (which would have been more expensive), but by hashing each file separately and summing up the hashes, and it shouldn't be noticeably more expensive than the unstable variant.

So, I do not think I mind if we introduced --include-whitespace as a third option in addition to --stable and --unstable, instead of allowing it to be combined with both --stable and --unstable.

But I wonder:
 * (minor) Would "--verbatim" work as a better option name?  The
   name "--include-whitespace" can apply even to an implementation
   that squashes multiple consecutive spaces and tabs into a single
   space, i.e. we keep words on a single line as separate words,
   instead of squishing them together, when hashing.
 * Do users even care about the internal reliance on the "stable"
   algorithm?  Wouldn't it be better to leave such an implementation
   detail unsaid?  After all, "--verbatim --unstable" would not work
   as they expect.

So I would suggest dropping "and implies patchid.stable" from the above description.

Previous: Jerry ZhangNext: Jerry Zhang
Message 27 of 46 in “update internal patch-id to use "stable" algorithm”
  1. 0/2 update internal patch-id to use "stable" algorithmJerry Zhang via GitGitGadget, Sep 20, 2022
  2. 2/2 patch-id: use stable patch-id for rebasesJerry Zhang via GitGitGadget, Sep 20, 2022
  3. 1/2 patch-id: fix stable patch id for binary / header-onlyJerry Zhang via GitGitGadget, Sep 20, 2022
  4. 0/2 update internal patch-id to use "stable" algorithmJerry Zhang via GitGitGadget, Sep 20, 2022
  5. 1/2 patch-id: fix stable patch id for binary / header-onlyJerry Zhang via GitGitGadget, Sep 20, 2022
  6. 2/2 patch-id: use stable patch-id for rebasesJerry Zhang via GitGitGadget, Sep 20, 2022
  7. 0/7 patch-id fixes and improvementsJerry Zhang via GitGitGadget, Oct 14, 2022
  8. 1/7 patch-id: fix stable patch id for binary / header-onlyJerry Zhang via GitGitGadget, Oct 14, 2022
  9. 2/7 patch-id: use stable patch-id for rebasesJerry Zhang via GitGitGadget, Oct 14, 2022
  10. 3/7 builtin: patch-id: fix patch-id with binary diffsJerry Zhang via GitGitGadget, Oct 14, 2022
  11. Junio C HamanoOct 14, 2022
  12. Jerry ZhangOct 14, 2022
  13. Junio C HamanoOct 14, 2022
  14. Jerry ZhangOct 14, 2022
  15. Junio C HamanoOct 17, 2022
  16. 7/7 documentation: format-patch: clarify requirements for patch-ids to matchJerry Zhang via GitGitGadget, Oct 14, 2022
  17. Junio C HamanoOct 17, 2022
  18. Jerry ZhangOct 18, 2022
  19. Junio C HamanoOct 19, 2022
  20. 4/7 patch-id: fix patch-id for mode changesJerry Zhang via GitGitGadget, Oct 14, 2022
  21. Junio C HamanoOct 14, 2022
  22. 6/7 builtin: patch-id: remove unused diff-tree prefixJerry Zhang via GitGitGadget, Oct 14, 2022
  23. Junio C HamanoOct 14, 2022
  24. 5/7 builtin: patch-id: add --include-whitespace as a command modeJerry Zhang via GitGitGadget, Oct 14, 2022
  25. Junio C HamanoOct 14, 2022
  26. Jerry ZhangOct 14, 2022
  27. Junio C HamanoOct 17, 2022
  28. Jerry ZhangOct 18, 2022
  29. 0/6 patch-id fixes and improvementsJerry Zhang via GitGitGadget, Oct 20, 2022
  30. 1/6 patch-id: fix stable patch id for binary / header-onlyJerry Zhang via GitGitGadget, Oct 20, 2022
  31. 2/6 patch-id: use stable patch-id for rebasesJerry Zhang via GitGitGadget, Oct 20, 2022
  32. 3/6 builtin: patch-id: fix patch-id with binary diffsJerry Zhang via GitGitGadget, Oct 20, 2022
  33. 4/6 patch-id: fix patch-id for mode changesJerry Zhang via GitGitGadget, Oct 20, 2022
  34. 5/6 builtin: patch-id: add --verbatim as a command modeJerry Zhang via GitGitGadget, Oct 20, 2022
  35. 6/6 builtin: patch-id: remove unused diff-tree prefixJerry Zhang via GitGitGadget, Oct 20, 2022
  36. Junio C HamanoOct 21, 2022
  37. 0/6 patch-id fixes and improvementsJerry Zhang via GitGitGadget, Oct 24, 2022
  38. 4/6 patch-id: fix patch-id for mode changesJerry Zhang via GitGitGadget, Oct 24, 2022
  39. 5/6 builtin: patch-id: add --verbatim as a command modeJerry Zhang via GitGitGadget, Oct 24, 2022
  40. 1/6 patch-id: fix stable patch id for binary / header-onlyJerry Zhang via GitGitGadget, Oct 24, 2022
  41. 2/6 patch-id: use stable patch-id for rebasesJerry Zhang via GitGitGadget, Oct 24, 2022
  42. 3/6 builtin: patch-id: fix patch-id with binary diffsJerry Zhang via GitGitGadget, Oct 24, 2022
  43. 6/6 builtin: patch-id: remove unused diff-tree prefixJerry Zhang via GitGitGadget, Oct 24, 2022
  44. Junio C HamanoOct 24, 2022
  45. Junio C HamanoSep 21, 2022
  46. Jerry ZhangSep 21, 2022

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.