Thread (43 messages) 43 messages, 3 authors, 2025-11-03

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

From: Li Chen <hidden>
Date: 2025-10-14 12:31:35

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 [off-list ref] wrote --- 
 > From: Li Chen [off-list ref]
 > 
 > 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/ (local)
 > 
 > Comments welcome!
 > 
 > [1]: https://lore.kernel.org/git/xmqq8qlzkukw.fsf@gitster.g/ (local)
 > [2]: https://lore.kernel.org/git/20250803150059.402017-1-me@linux.beauty/ (local)
 > 
 > 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​
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help