From: Phillip Wood <phillip.wood@xxxxxxxxxxxxx> I've updated the patches to fix the embarassing build failure in v3. I've also added a patch to remove the known breakage from some of the tests in t3512/t3513 that now pass - someone who knows about submodules should check this. The only other change is to interpret commit.cleanup=scissors to mean COMMIT_MSG_CLEANUP_SPACE when loading the default value for message cleanups to be consistent with 'git commit'. (I can't imagine many people have that value set in their config) Here's the original summary: 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: simplify adding Signed-off-by: trailer sequencer: load commit related config sequencer: try to commit without forking 'git commit' t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1 builtin/commit.c | 289 +++-------------------- builtin/rebase--helper.c | 13 +- builtin/revert.c | 15 +- sequencer.c | 486 ++++++++++++++++++++++++++++++++++++++- sequencer.h | 23 ++ t/t3404-rebase-interactive.sh | 4 + t/t3512-cherry-pick-submodule.sh | 1 - t/t3513-revert-submodule.sh | 1 - 8 files changed, 561 insertions(+), 271 deletions(-) -- 2.15.0