Hi Johannes, Johannes Schindelin <johannes.schindelin@xxxxxx> writes: > 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 v3: > > - removed the no-longer-used transform_todo_ids shell function > > - simplified transform_todo_ids()'s command parsing > > - fixed two commits in check_todo_list(), renamed the unclear > `raise_error` variable to `advise_to_edit_todo`, build the message > about missing commits directly (without the detour to building a > commit_list) and instead of assigning an unused pointer to commit->util > the code now uses (void *)1. > > - return early from check_todo_list() when parsing failed, even if the > check level is something else than CHECK_IGNORE > > - the todo list is generated is again generated in the same way as > before when rebase.instructionFormat is empty: it was interpreted as > if it had not been set > > - added a test for empty rebase.instructionFormat settings > > > Johannes Schindelin (10): > t3415: verify that an empty instructionFormat is handled as before > 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 | 373 ++++------------------------- > sequencer.c | 530 ++++++++++++++++++++++++++++++++++++++++++ > sequencer.h | 8 + > t/t3404-rebase-interactive.sh | 22 +- > t/t3415-rebase-autosquash.sh | 28 ++- > 7 files changed, 646 insertions(+), 360 deletions(-) > > > base-commit: 027a3b943b444a3e3a76f9a89803fc10245b858f > Based-On: rebase--helper at https://github.com/dscho/git > Fetch-Base-Via: git fetch https://github.com/dscho/git rebase--helper > Published-As: https://github.com/dscho/git/releases/tag/rebase-i-extra-v4 > Fetch-It-Via: git fetch https://github.com/dscho/git rebase-i-extra-v4 > This is my first review so it's probably not the best you'll get, but here it goes! I rebased the series ontop of v2.13.0 and run the whole `make test` on both revisions. The changes do not seem to have introduced any evident breakage as the output of `make test` did not change. I tried to time the execution on an interactive rebase (on Linux) but I did not notice a significant change in speed. Do we have a way to measure performance / speed changes between version? Liam