git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[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
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 4 of 7 in “Let the sequencer handle the grunt work of rebase -i”
  1. 0/2 Let the sequencer handle the grunt work of rebase -iJohannes Schindelin, Sep 2, 2016
  2. 2/2 rebase -i: use the rebase--helper builtinJohannes Schindelin, Sep 2, 2016
  3. 1/2 Add a builtin helper for interactive rebasesJohannes Schindelin, Sep 2, 2016
  4. 0/2 Let the sequencer handle the grunt work of rebase -iJohannes Schindelin, Feb 9, 2017
  5. 2/2 rebase -i: use the rebase--helper builtinJohannes Schindelin, Feb 9, 2017
  6. 1/2 Add a builtin helper for interactive rebasesJohannes Schindelin, Feb 9, 2017
  7. Junio C HamanoFeb 9, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.