diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-12-10 14:35:16 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-12-10 14:35:16 -0800 |
commit | 3e1dbfa135cf131281aa92f159073dc892bac419 (patch) | |
tree | f45146f6702e2809f61d75702f15246363502fe7 | |
parent | Merge branch 'cb/add-p-single-key-fix' (diff) | |
parent | sequencer: avoid adding exec commands for non-commit creating commands (diff) | |
download | tgif-3e1dbfa135cf131281aa92f159073dc892bac419.tar.xz |
Merge branch 'en/rebase-x-fix'
"git rebase -x" added an unnecessary 'exec' instructions before
'noop', which has been corrected.
* en/rebase-x-fix:
sequencer: avoid adding exec commands for non-commit creating commands
-rw-r--r-- | sequencer.c | 2 | ||||
-rwxr-xr-x | t/t3429-rebase-edit-todo.sh | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/sequencer.c b/sequencer.c index b4135a78c9..795b370dd3 100644 --- a/sequencer.c +++ b/sequencer.c @@ -5502,7 +5502,7 @@ static void todo_list_add_exec_commands(struct todo_list *todo_list, } /* insert or append final <commands> */ - if (insert || nr == todo_list->nr) { + if (insert) { ALLOC_GROW(items, nr + commands->nr, alloc); COPY_ARRAY(items + nr, base_items, commands->nr); nr += commands->nr; diff --git a/t/t3429-rebase-edit-todo.sh b/t/t3429-rebase-edit-todo.sh index 7024d49ae7..abd66f3602 100755 --- a/t/t3429-rebase-edit-todo.sh +++ b/t/t3429-rebase-edit-todo.sh @@ -13,10 +13,15 @@ test_expect_success 'setup' ' test_expect_success 'rebase exec modifies rebase-todo' ' todo=.git/rebase-merge/git-rebase-todo && - git rebase HEAD -x "echo exec touch F >>$todo" && + git rebase HEAD~1 -x "echo exec touch F >>$todo" && test -e F ' +test_expect_success 'rebase exec with an empty list does not exec anything' ' + git rebase HEAD -x "true" 2>output && + ! grep "Executing: true" output +' + test_expect_success 'loose object cache vs re-reading todo list' ' GIT_REBASE_TODO=.git/rebase-merge/git-rebase-todo && export GIT_REBASE_TODO && |