[PATCH v2 0/2] Let the sequencer handle the grunt work of rebase -i
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Feb 9, 2017, 22:22 UTC
- Message-ID
- <cover.1486678952.git.johannes.schindelin@gmx.de>
- In-Reply-To
- <cover.1472805251.git.johannes.schindelin@gmx.de>
After all of these patch series y'all had to review, this is finally the one that switches things over.
Please note that it does not (yet) handle the `git rebase -i --root` invocation; I tried to focus on the common case, and I rarely use --root myself.
Please note also that --preserve-merges is *not* handled.
The way I designed --preserve-merges is totally stupid and idiotic and I do not want to spend any further time on it. You cannot "pick" merges and hope to be able to reorder commits, for example. I may work on porting Git garden shears' way to recreate the branch structure into rebase -i proper at some stage.
And please finally note that this pair of patches does not yet yield the full speed improvement that I promised earlier. After these patches, the time is dominated by pre- and post-processing the todo script, at least on Windows, so there is another patch series that ports those bits and pieces into the rebase--helper, too.
Changes since v1:
- rebased to current master
- this required a change in t3404 because I was bullied^Wasked to change some messages (which should not have been conflated with the work I actually wanted to do, but whatevs)
Johannes Schindelin (2): Add a builtin helper for interactive rebases rebase -i: use the rebase--helper builtin
.gitignore | 1 + Makefile | 1 + builtin.h | 1 + builtin/rebase--helper.c | 40 ++++++++++++++++++++++++++++++++++++++++ git-rebase--interactive.sh | 13 +++++++++++++ git.c | 1 + t/t3404-rebase-interactive.sh | 2 +- 7 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 builtin/rebase--helper.c
base-commit: 6e3a7b3398559305c7a239a42e447c21a8f39ff8 Based-On: sequencer-i at https://github.com/dscho/git Fetch-Base-Via: git fetch https://github.com/dscho/git sequencer-i Published-As: https://github.com/dscho/git/releases/tag/rebase--helper-v2 Fetch-It-Via: git fetch https://github.com/dscho/git rebase--helper-v2
Interdiff vs v1:
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index e2f18d11f6..33d392ba11 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -556,7 +556,7 @@ test_expect_success 'clean error after failed "exec"' ' echo "edited again" > file7 && git add file7 && test_must_fail git rebase --continue 2>error && - test_i18ngrep "You have staged changes in your working tree." error + test_i18ngrep "you have staged changes in your working tree" error ' test_expect_success 'rebase a detached HEAD' '
-- 2.11.1.windows.1