RFC rebase -i: Implement `reword` and `squash` in terms of `do_pick`
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest0 of 7 patches 0 repliesNew
Patches in v1 No applies recorded yet
None of the 7 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [RFC PATCH 0/7] rebase -i: Implement `reword` and `squash` in terms of `do_pick`
Hi,
This patch series is part of the undertaking to add command line options to to-do list commands. The goal is to be able to write something similar to
pick --reset-author --signoff a Some changes
pick b Some more changes
squash --no-edit c Ack Some more changes.
The first submission to the mailing list adds options parsing to do_pick and reimplements the current set of to-do list commands in terms[1] of a parametrized do_pick. It neither adds new commands to to-do lists nor exposes the command line options feature to the user. Still it makes the implementation of do_next slightly more straight-forward and the function do_pick behave more like an internal git-cherry-pick.
The patches try to accomplish one thing at a time but are not standalone in the sense that each of them constitutes a frame only in which a subsequent patch can express its one thing. For instance, only committing once and not dying in do_pick are things specific to implementing squash in terms of do_pick but presented as separate patches so that their correctness can be discussed independently.
The last patch contains some notes about when to run the post-rewrite hook, something I could not figure out myself.
Thanks for your time,
Fabian
[1] pick, reword, squash, fixup
Fabian Ruch (7):
rebase -i: Make option handling in pick_one more flexible rebase -i: Teach do_pick the option --edit rebase -i: Stop on root commits with empty log messages rebase -i: Commit only once when rewriting picks rebase -i: Do not die in do_pick
rebase -i: Prepare for squash in terms of do_pick --amend rebase -i: Teach do_pick the options --amend and --file
git-rebase--interactive.sh | 194 +++++++++++++++++++++++++++++++----------- t/t3404-rebase-interactive.sh | 8 ++ t/t3412-rebase-root.sh | 39 +++++++++ 3 files changed, 193 insertions(+), 48 deletions(-)
Signature · 1 line
2.0.0