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

[PATCH v3 00/13] Fixes to trailer test script, help text, and documentation

From
LGLinus Arver via GitGitGadget <gitgitgadget@gmail.com>
Date
Sep 7, 2023, 22:19 UTC
Message-ID
<pull.1564.v3.git.1694125209.gitgitgadget@gmail.com>
In-Reply-To
<pull.1564.v2.git.1691702283.gitgitgadget@gmail.com>

This series contains various fixes to the trailer code. They pertain to fixes to the test script, the command line help text for the interpret-trailers builtin, and the documentation.

Patch 1 is the most important as it does cleanups in the tests where we used 'git config' in a test case without cleaning up that state for the next test. This makes the tests self-contained, making it easier to add new tests anywhere along the script, without worrying about previously-set implicit state. These test cleanups exposed lots of cases where the test cases are mutating more configuration state than is necessary to test the specific behavior in the test; however such extraneous configurations were not cleaned up to make these patches easier to review (again, we are not changing any behavior and we are also not changing what the test cases themselves purport to do).

Note that Patch 1 was originally a 22-commit series, but was squashed together to make it easier to see the final diff for each test case. You can see the 22-commit breakdown at https://github.com/listx/git/tree/backup-trailer-22-commit-breakdown

Patch 3 adds some tests to check the behavior of '--no-if-exists' and '--no-if-missing', which weren't previously tested. It also adds similarly-themed test cases for '--no-where' which only had 1 test case for it.

The other patches aren't as important, but are included here because I think they are too small to include in a separate series.

Updates in v3 =============

 * Fix t0450 failure due to mismatch between the updated documentation which
   uses " or " and the help text of the interpret-trailers command.

Updates in v2 =============

 * Many additional patches to fix the help text and docs. No changes to any
   of the patches touching the actual tests (that is, Patch 1 and 3 have
   stayed the same, other than a rewording of the commit message for Patch
   1).
 * Of these new patches, I think the last one (about <keyAlias>) is the most
   important as it resolves a longtime ambiguity about what a <token> can
   be.
Linus Arver (13):
  trailer tests: make test cases self-contained
  trailer test description: this tests --where=after, not --where=before
  trailer: add tests to check defaulting behavior with --no-* flags
  trailer doc: narrow down scope of --where and related flags
  trailer: trailer location is a place, not an action
  trailer --no-divider help: describe usual "---" meaning
  trailer --parse help: expose aliased options
  trailer --only-input: prefer "configuration variables" over "rules"
  trailer --parse docs: add explanation for its usefulness
  trailer --unfold help: prefer "reformat" over "join"
  trailer doc: emphasize the effect of configuration variables
  trailer doc: separator within key suppresses default separator
  trailer doc: <token> is a <key> or <keyAlias>, not both
 Documentation/git-interpret-trailers.txt | 183 ++++----
 builtin/interpret-trailers.c             |  12 +-
 t/t7513-interpret-trailers.sh            | 506 +++++++++++++++++++----
 3 files changed, 545 insertions(+), 156 deletions(-)
base-commit: 1b0a5129563ebe720330fdc8f5c6843d27641137
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1564%2Flistx%2Ftrailer-fixes-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1564/listx/trailer-fixes-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/1564
Range-diff vs v2:
  1:  1623dd000dd =  1:  1623dd000dd trailer tests: make test cases self-contained
  2:  f680e76de84 =  2:  f680e76de84 trailer test description: this tests --where=after, not --where=before
  3:  4b5c458ef43 =  3:  4b5c458ef43 trailer: add tests to check defaulting behavior with --no-* flags
  4:  0df12c5c2dd =  4:  0df12c5c2dd trailer doc: narrow down scope of --where and related flags
  5:  040766861e2 =  5:  040766861e2 trailer: trailer location is a place, not an action
  6:  3e58b6f5ea2 =  6:  3e58b6f5ea2 trailer --no-divider help: describe usual "---" meaning
  7:  d1780a0127a =  7:  d1780a0127a trailer --parse help: expose aliased options
  8:  5cfff52da8f =  8:  5cfff52da8f trailer --only-input: prefer "configuration variables" over "rules"
  9:  ef6b77016cd =  9:  ef6b77016cd trailer --parse docs: add explanation for its usefulness
 10:  a08d78618ba = 10:  a08d78618ba trailer --unfold help: prefer "reformat" over "join"
 11:  4db823ac354 = 11:  4db823ac354 trailer doc: emphasize the effect of configuration variables
 12:  66087eaf5bd = 12:  66087eaf5bd trailer doc: separator within key suppresses default separator
 13:  7b66cf29d29 ! 13:  0b9525db5a0 trailer doc: <token> is a <key> or <keyAlias>, not both
     @@ Documentation/git-interpret-trailers.txt: trailer.<token>.command::
       
       EXAMPLES
       --------
     +
     + ## builtin/interpret-trailers.c ##
     +@@
     + 
     + static const char * const git_interpret_trailers_usage[] = {
     + 	N_("git interpret-trailers [--in-place] [--trim-empty]\n"
     +-	   "                       [(--trailer <token>[(=|:)<value>])...]\n"
     ++	   "                       [(--trailer (<key>|<keyAlias>)[(=|:)<value>])...]\n"
     + 	   "                       [--parse] [<file>...]"),
     + 	NULL
     + };
-- 
gitgitgadget
Previous: Linus ArverNext: Linus Arver via GitGitGadget
Message 29 of 52 in “Fixes to trailer test script, help text, and documentation”
  1. 0/5 Fixes to trailer test script, help text, and documentationLinus Arver via GitGitGadget, Aug 5, 2023
  2. 2/5 trailer test description: this tests --where=after, not --where=beforeLinus Arver via GitGitGadget, Aug 5, 2023
  3. 5/5 trailer --no-divider help: describe usual "---" meaningLinus Arver via GitGitGadget, Aug 5, 2023
  4. 1/5 trailer tests: make test cases self-containedLinus Arver via GitGitGadget, Aug 5, 2023
  5. Linus ArverAug 7, 2023
  6. 4/5 trailer: trailer location is a place, not an actionLinus Arver via GitGitGadget, Aug 5, 2023
  7. 3/5 trailer: add tests to check defaulting behavior with --no-* flagsLinus Arver via GitGitGadget, Aug 5, 2023
  8. Junio C HamanoAug 7, 2023
  9. Linus ArverAug 7, 2023
  10. Linus ArverAug 7, 2023
  11. Linus ArverAug 7, 2023
  12. Junio C HamanoAug 7, 2023
  13. 00/13 Fixes to trailer test script, help text, and documentationLinus Arver via GitGitGadget, Aug 10, 2023
  14. 02/13 trailer test description: this tests --where=after, not --where=beforeLinus Arver via GitGitGadget, Aug 10, 2023
  15. 01/13 trailer tests: make test cases self-containedLinus Arver via GitGitGadget, Aug 10, 2023
  16. 04/13 trailer doc: narrow down scope of --where and related flagsLinus Arver via GitGitGadget, Aug 10, 2023
  17. 03/13 trailer: add tests to check defaulting behavior with --no-* flagsLinus Arver via GitGitGadget, Aug 10, 2023
  18. 05/13 trailer: trailer location is a place, not an actionLinus Arver via GitGitGadget, Aug 10, 2023
  19. 06/13 trailer --no-divider help: describe usual "---" meaningLinus Arver via GitGitGadget, Aug 10, 2023
  20. 07/13 trailer --parse help: expose aliased optionsLinus Arver via GitGitGadget, Aug 10, 2023
  21. 09/13 trailer --parse docs: add explanation for its usefulnessLinus Arver via GitGitGadget, Aug 10, 2023
  22. 10/13 trailer --unfold help: prefer "reformat" over "join"Linus Arver via GitGitGadget, Aug 10, 2023
  23. 08/13 trailer --only-input: prefer "configuration variables" over "rules"Linus Arver via GitGitGadget, Aug 10, 2023
  24. 11/13 trailer doc: emphasize the effect of configuration variablesLinus Arver via GitGitGadget, Aug 10, 2023
  25. 12/13 trailer doc: separator within key suppresses default separatorLinus Arver via GitGitGadget, Aug 10, 2023
  26. 13/13 trailer doc: <token> is a <key> or <keyAlias>, not bothLinus Arver via GitGitGadget, Aug 10, 2023
  27. Junio C HamanoAug 11, 2023
  28. Linus ArverAug 11, 2023
  29. 00/13 Fixes to trailer test script, help text, and documentationLinus Arver via GitGitGadget, Sep 7, 2023
  30. 02/13 trailer test description: this tests --where=after, not --where=beforeLinus Arver via GitGitGadget, Sep 7, 2023
  31. 03/13 trailer: add tests to check defaulting behavior with --no-* flagsLinus Arver via GitGitGadget, Sep 7, 2023
  32. Junio C HamanoSep 8, 2023
  33. 01/13 trailer tests: make test cases self-containedLinus Arver via GitGitGadget, Sep 7, 2023
  34. 04/13 trailer doc: narrow down scope of --where and related flagsLinus Arver via GitGitGadget, Sep 7, 2023
  35. 06/13 trailer --no-divider help: describe usual "---" meaningLinus Arver via GitGitGadget, Sep 7, 2023
  36. Junio C HamanoSep 8, 2023
  37. 05/13 trailer: trailer location is a place, not an actionLinus Arver via GitGitGadget, Sep 7, 2023
  38. Jonathan TanSep 19, 2023
  39. 08/13 trailer --only-input: prefer "configuration variables" over "rules"Linus Arver via GitGitGadget, Sep 7, 2023
  40. 10/13 trailer --unfold help: prefer "reformat" over "join"Linus Arver via GitGitGadget, Sep 7, 2023
  41. 09/13 trailer --parse docs: add explanation for its usefulnessLinus Arver via GitGitGadget, Sep 7, 2023
  42. Junio C HamanoSep 8, 2023
  43. 07/13 trailer --parse help: expose aliased optionsLinus Arver via GitGitGadget, Sep 7, 2023
  44. Jonathan TanSep 19, 2023
  45. 12/13 trailer doc: separator within key suppresses default separatorLinus Arver via GitGitGadget, Sep 7, 2023
  46. 11/13 trailer doc: emphasize the effect of configuration variablesLinus Arver via GitGitGadget, Sep 7, 2023
  47. 13/13 trailer doc: <token> is a <key> or <keyAlias>, not bothLinus Arver via GitGitGadget, Sep 7, 2023
  48. Jonathan TanSep 19, 2023
  49. Linus ArverSep 20, 2023
  50. Junio C HamanoSep 20, 2023
  51. Linus ArverSep 22, 2023
  52. 13/13 trailer doc: <token> is a <key> or <keyAlias>, not bothTeng Long, Nov 10, 2023

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.