summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2021-12-10 14:35:16 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2021-12-10 14:35:16 -0800
commit3e1dbfa135cf131281aa92f159073dc892bac419 (patch)
treef45146f6702e2809f61d75702f15246363502fe7
parentMerge branch 'cb/add-p-single-key-fix' (diff)
parentsequencer: avoid adding exec commands for non-commit creating commands (diff)
downloadtgif-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.c2
-rwxr-xr-xt/t3429-rebase-edit-todo.sh7
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 &&