[RFC PATCH 0/7] rebase -i: Implement `reword` and `squash` in terms of `do_pick`
- From
Fabian Ruch <bafain@gmail.com>
- Date
- Jun 19, 2014, 03:28 UTC
- Message-ID
- <53A258D2.7080806@gmail.com>
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(-)
-- 2.0.0