From: Phillip Wood <phillip.w...@dunelm.org.uk>

Changes since the last version
 - reworked the second patch based on Junio's feedback so it no longer sets
   GIT_REFLOG_ACTION
 - reworded commit messages
 - print_commit_summary() no longer dies but returns an error so the sequencer
   can exit cleanly
 - reworked the last patch to return errors rather than dying when creating a
   commit and to use the correct commit message with intermediate squashes.
 - rebased onto next as there were some conflicting changes in builtin/commit.c
 - updated benchmarks compared to v2.15.0 (the percentage difference is
   essentially the same)
 - fixed some style issues

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 (8):
  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         | 260 ++------------------------
 builtin/rebase--helper.c |  13 +-
 builtin/revert.c         |  15 +-
 sequencer.c              | 478 ++++++++++++++++++++++++++++++++++++++++++++++-
 sequencer.h              |  21 +++
 5 files changed, 531 insertions(+), 256 deletions(-)

-- 
2.14.3

Reply via email to