This patch series adds fixup [-C|-c] options to interactive rebase. In addition to amending the contents of the commit as the `fixup` command does now, `fixup -C` replaces the commit message of the original commit which we are fixing up with the message of the fixup commit. And to edit the fixup commit message before committing, `fixup -c` command is used instead of `fixup -C`. This convention is similar to the existing `merge` command in the interactive rebase, that also supports `-c` and `-C` options with similar meanings. Also, `fixup -C` is intended to support amend! commit upon --autosquash and it's working will be added in another patch series with the implementation of amend! commit. Changes from v4 : (Thanks to Eric Sunshine, Christian Couder and Phillip Wood for suggestions and reviews) The major change in this version is to remove the working of `fixup -C` with amend! commit and will include in the another patch series, in order to avoid the confusion. So there are following changes : * removed the patch (rebase -i : teach --autosquash to work with amend!) * updated the test script (t3437-*.sh), changed the test setup and removed two tests. Earlier every test includes the commit message having subject starting with amend! So, now it includes a setup of different branch for testing fixup with options and also updated all the tests. Removed the test - "skip fixup -C removes amend! from message" and also "sequence of fixup, fixup -C & squash --signoff works" as I think it would be better to test this also in the branch with amend! commit with different author. (Will add these tests with amend! commit implementation) * changed the flag type from enum todo_item_flags to unsigned * Removed amend! conditions from sequencer.c and * Replaced fixup_-* with fixup-* in lib-rebase.sh * fixup a small nit in Documentation Charvi Mendiratta (5): sequencer: pass todo_item to do_pick_commit() sequencer: use const variable for commit message comments rebase -i: add fixup [-C | -c] command t3437: test script for fixup [-C|-c] options in interactive rebase doc/git-rebase: add documentation for fixup [-C|-c] options Phillip Wood (3): rebase -i: only write fixup-message when it's needed sequencer: factor out code to append squash message rebase -i: comment out squash!/fixup! subjects from squash message Documentation/git-rebase.txt | 13 +- rebase-interactive.c | 4 +- sequencer.c | 270 ++++++++++++++++++++++++++---- t/lib-rebase.sh | 8 +- t/t3415-rebase-autosquash.sh | 30 ++-- t/t3437-rebase-fixup-options.sh | 133 +++++++++++++++ t/t3437/expected-combined-message | 19 +++ t/t3900-i18n-commit.sh | 4 - 8 files changed, 425 insertions(+), 56 deletions(-) create mode 100755 t/t3437-rebase-fixup-options.sh create mode 100644 t/t3437/expected-combined-message -- 2.29.0.rc1