From: Phillip Wood <phillip.wood@xxxxxxxxxxxxx> Thanks for the feedback on v1 I've updated the patches as suggested. See the comments on each patch for what has changed. I've added a patch to the start of the series to test the commit messages of intermediate squashes. I've added this as the RFC version of this series did not create these correctly but the test suite passed. Here's the summary from the previous version These patches teach the sequencer to create commits without forking git commit when the commit message does not need to be edited. This speeds up cherry picking 10 commits by 26% and picking 10 commits with rebase --continue by 44%. The first few patches move bits of builtin/commit.c to sequencer.c. The last two patches actually implement creating commits in sequencer.c. Phillip Wood (9): t3404: check intermediate squash messages commit: move empty message checks to libgit Add a function to update HEAD after creating a commit commit: move post-rewrite code to libgit commit: move print_commit_summary() to libgit sequencer: don't die in print_commit_summary() sequencer: simplify adding Signed-off-by: trailer sequencer: load commit related config sequencer: try to commit without forking 'git commit' builtin/commit.c | 290 +++---------------------- builtin/rebase--helper.c | 13 +- builtin/revert.c | 15 +- sequencer.c | 489 +++++++++++++++++++++++++++++++++++++++++- sequencer.h | 23 ++ t/t3404-rebase-interactive.sh | 4 + 6 files changed, 565 insertions(+), 269 deletions(-) -- 2.15.0