Skip to content

rebase-i-extra-v3

This patch series reimplements the expensive pre- and post-processing of
the todo script in C.

And it concludes the work I did to accelerate rebase -i.

Changes since v2:

- rearranged error_errno() calls to come before any subsequent free()
  and close()

- now call close(fd) in case of error to avoid resource leaks

- removed unused `format` variable holding the value of
  rebase.instructionFormat from rearrange_squash()

- modified rearrange_squash() to make it easier to reason about
  subjects[i] taking custody of a strbuf's buffer (this should enable
  Coverity to see that there is no resource leak here)

Johannes Schindelin (9):
  rebase -i: generate the script via rebase--helper
  rebase -i: remove useless indentation
  rebase -i: do not invent onelines when expanding/collapsing SHA-1s
  rebase -i: also expand/collapse the SHA-1s via the rebase--helper
  t3404: relax rebase.missingCommitsCheck tests
  rebase -i: check for missing commits in the rebase--helper
  rebase -i: skip unnecessary picks using the rebase--helper
  t3415: test fixup with wrapped oneline
  rebase -i: rearrange fixup/squash lines using the rebase--helper

 Documentation/git-rebase.txt  |  16 +-
 builtin/rebase--helper.c      |  29 ++-
 git-rebase--interactive.sh    | 362 ++++------------------------
 sequencer.c                   | 531 ++++++++++++++++++++++++++++++++++++++++++
 sequencer.h                   |   8 +
 t/t3404-rebase-interactive.sh |  22 +-
 t/t3415-rebase-autosquash.sh  |  16 +-
 7 files changed, 641 insertions(+), 343 deletions(-)

base-commit: e2cb6ab84c94f147f1259260961513b40c36108a

Submitted-As: https://public-inbox.org/git/cover.1493207864.git.johannes.schindelin@gmx.de
In-Reply-To: https://public-inbox.org/git/cover.1472833365.git.johannes.schindelin@gmx.de
In-Reply-To: https://public-inbox.org/git/cover.1493128210.git.johannes.schindelin@gmx.de
Assets 2