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

Re: [PATCH v4 00/29] rebase: support --trailer

From
Li Chen <me@linux.beauty>
Date
Oct 14, 2025, 12:31 UTC
Message-ID
<199e2b43582.47bdac39780183.537796020815726330@linux.beauty>
In-Reply-To
<20251014122452.1851103-1-me@linux.beauty>
Hi Phillip & Junio,
I apologize for the delay in sending out v4. I will respond to
and update the code in the following patchset (if needed)
 as soon as possible. 
My apologies!
 ---- On Tue, 14 Oct 2025 20:24:13 +0800  Li Chen <me@linux.beauty> wrote --- 
 > From: Li Chen <chenl311@chinatelecom.cn>
 > 
 > This patch series teaches git rebase a new
 > --trailer <text> option and, as a prerequisite, moves all trailer
 > handling out of the external interpret-trailers helper and into the
 > builtin code path, as suggested by Phillip Wood.
 > 
 > Patch 0 switches trailer.c to an in-memory implementation
 > (amend_strbuf_with_trailers()). It removes every fork/exec.
 > 
 > Patch 1~8 fix all reviewer comments from v3 for patch 0. 
 > 
 > Patch 9 builds on that helper to implement
 > git rebase --trailer. When the option is given we:
 > force the merge backend (apply/am backend lacks a message filter),
 > automatically enable --force-rebase so that fast-forwarded
 > commits are rewritten, and append the requested trailer(s) to every
 > rewritten commit.
 > State is stored in $state_dir/trailer so an interrupted rebase can
 > resume safely. A dedicated test-suite (t3440) exercises plain,
 > conflict, --root, invalid-input scenarios and etc.
 > 
 > The rest patches address all reviewer comments from v3 for patch 9. 
 > 
 > All t/*.sh testcases have run successfully.
 > 
 > v4: fix all reviewer comments in v3. [2]
 > v3: merges the remaining trailer paths into one in-process helper, dropping the
 >     duplicate code, as pointed by Junio and Phillip [1]
 > v2: fix issues pointed by Phillip 
 > RFC link: https://lore.kernel.org/git/196a5ac1393.f5b4db7d187309.2451613571977217927@linux.beauty/
 > 
 > Comments welcome!
 > 
 > [1]: https://lore.kernel.org/git/xmqq8qlzkukw.fsf@gitster.g/
 > [2]: https://lore.kernel.org/git/20250803150059.402017-1-me@linux.beauty/
 > 
 > Li Chen (29):
 >   trailer: append trailers in-process and drop the fork to
 >     `interpret-trailers`
 >   trailer: restore interpret_trailers helper
 >   trailer: drop --trailer prefix handling in amend helper
 >   trailer: move config_head and arg_head to if storage
 >   trailer: use bool for had_trailer_before
 >   interpret-trailers: buffer stdout output
 >   trailer: mirror interpret-trailers output flow
 >   trailer: handle trailer append failures gently
 >   rebase: support --trailer
 >   rebase: inline trailer state paths
 >   rebase: reuse buffer for trailer args
 >   rebase: drop redundant strbuf_release call
 >   rebase: skip stripping of --trailer option prefix
 >   rebase: die on invalid trailer args
 >   rebase: validate trailers with configured separators
 >   sequencer: add trailers to message before writing file
 >   tests: t3440: create expect files at point of use
 >   tests: t3440: check apply backend error includes option
 >   tests: t3440: use test_commit_message for trailer checks
 >   tests: t3440: drop redundant resets and pass branch to rebase where
 >     needed
 >   tests: t3440: assert trailer on HEAD after conflict rebase
 >   rebase: persist --trailer options across restarts
 >   tests: t3440: remove redundant --keep-empty
 >   tests: t3440: use helper for trailer checks
 >   tests: t3440: test --trailer without values
 >   tests: t3440: convert ex.com to example.com
 >   tests: t3440: ensure trailers persist after rebase continue
 >   tests: t3440: exercise trailer config mapping
 >   sequencer: honor --trailer with fixup -C
 > 
 >  Documentation/git-rebase.adoc |   7 ++
 >  builtin/commit.c              |   2 +-
 >  builtin/interpret-trailers.c  |  94 +++++-------------------
 >  builtin/rebase.c              |  50 +++++++++++++
 >  builtin/tag.c                 |   3 +-
 >  sequencer.c                   |  34 +++++++++
 >  sequencer.h                   |   4 +-
 >  t/meson.build                 |   1 +
 >  t/t3440-rebase-trailer.sh     | 134 ++++++++++++++++++++++++++++++++++
 >  trailer.c                     | 130 ++++++++++++++++++++++++++++++---
 >  trailer.h                     |  23 +++++-
 >  wrapper.c                     |  16 ++++
 >  wrapper.h                     |   6 ++
 >  13 files changed, 411 insertions(+), 93 deletions(-)
 >  create mode 100755 t/t3440-rebase-trailer.sh
 > 
 > -- 
 > 2.51.0
 > 
 > 
Regards,
Li​
Previous: Li Chen
Message 43 of 43 in “rebase: support --trailer”
  1. 00/29 rebase: support --trailerLi Chen, Oct 14, 2025
  2. 01/29 trailer: append trailers in-process and drop the fork to `interpret-trailers`Li Chen, Oct 14, 2025
  3. Kristoffer HaugsbakkOct 14, 2025
  4. Li ChenOct 21, 2025
  5. 02/29 trailer: restore interpret_trailers helperLi Chen, Oct 14, 2025
  6. 03/29 trailer: drop --trailer prefix handling in amend helperLi Chen, Oct 14, 2025
  7. 04/29 trailer: move config_head and arg_head to if storageLi Chen, Oct 14, 2025
  8. 05/29 trailer: use bool for had_trailer_beforeLi Chen, Oct 14, 2025
  9. 06/29 interpret-trailers: buffer stdout outputLi Chen, Oct 14, 2025
  10. 07/29 trailer: mirror interpret-trailers output flowLi Chen, Oct 14, 2025
  11. 08/29 trailer: handle trailer append failures gentlyLi Chen, Oct 14, 2025
  12. 09/29 rebase: support --trailerLi Chen, Oct 14, 2025
  13. Kristoffer HaugsbakkOct 14, 2025
  14. Li ChenOct 22, 2025
  15. 10/29 rebase: inline trailer state pathsLi Chen, Oct 14, 2025
  16. 11/29 rebase: reuse buffer for trailer argsLi Chen, Oct 14, 2025
  17. 12/29 rebase: drop redundant strbuf_release callLi Chen, Oct 14, 2025
  18. 13/29 rebase: skip stripping of --trailer option prefixLi Chen, Oct 14, 2025
  19. 14/29 rebase: die on invalid trailer argsLi Chen, Oct 14, 2025
  20. 15/29 rebase: validate trailers with configured separatorsLi Chen, Oct 14, 2025
  21. 16/29 sequencer: add trailers to message before writing fileLi Chen, Oct 14, 2025
  22. Kristoffer HaugsbakkOct 14, 2025
  23. 17/29 tests: t3440: create expect files at point of useLi Chen, Oct 14, 2025
  24. Kristoffer HaugsbakkOct 14, 2025
  25. Li ChenOct 15, 2025
  26. Kristoffer HaugsbakkOct 15, 2025
  27. Phillip WoodOct 23, 2025
  28. Li ChenOct 28, 2025
  29. Phillip WoodNov 3, 2025
  30. 18/29 tests: t3440: check apply backend error includes optionLi Chen, Oct 14, 2025
  31. 19/29 tests: t3440: use test_commit_message for trailer checksLi Chen, Oct 14, 2025
  32. 20/29 tests: t3440: drop redundant resets and pass branch to rebase where neededLi Chen, Oct 14, 2025
  33. 21/29 tests: t3440: assert trailer on HEAD after conflict rebaseLi Chen, Oct 14, 2025
  34. 22/29 rebase: persist --trailer options across restartsLi Chen, Oct 14, 2025
  35. 23/29 tests: t3440: remove redundant --keep-emptyLi Chen, Oct 14, 2025
  36. 24/29 tests: t3440: use helper for trailer checksLi Chen, Oct 14, 2025
  37. 25/29 tests: t3440: test --trailer without valuesLi Chen, Oct 14, 2025
  38. Kristoffer HaugsbakkOct 14, 2025
  39. 26/29 tests: t3440: convert ex.com to example.comLi Chen, Oct 14, 2025
  40. 27/29 tests: t3440: ensure trailers persist after rebase continueLi Chen, Oct 14, 2025
  41. 28/29 tests: t3440: exercise trailer config mappingLi Chen, Oct 14, 2025
  42. 29/29 sequencer: honor --trailer with fixup -CLi Chen, Oct 14, 2025
  43. Li ChenOct 14, 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.