From 71f82465b1c9546a09c442c3c9aa22ecbb76f820 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 12 Oct 2018 06:14:26 -0700 Subject: rebase -i: introduce the 'break' command The 'edit' command can be used to cherry-pick a commit and then immediately drop out of the interactive rebase, with exit code 0, to let the user amend the commit, or test it, or look around. Sometimes this functionality would come in handy *without* cherry-picking a commit, e.g. to interrupt the interactive rebase even before cherry-picking a commit, or immediately after an 'exec' or a 'merge'. This commit introduces that functionality, as the spanking new 'break' command. Suggested-by: Stefan Beller Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- t/lib-rebase.sh | 2 +- t/t3418-rebase-continue.sh | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 't') diff --git a/t/lib-rebase.sh b/t/lib-rebase.sh index 25a77ee5cb..584604ee63 100644 --- a/t/lib-rebase.sh +++ b/t/lib-rebase.sh @@ -49,7 +49,7 @@ set_fake_editor () { case $line in squash|fixup|edit|reword|drop) action="$line";; - exec*) + exec*|break) echo "$line" | sed 's/_/ /g' >> "$1";; "#") echo '# comment' >> "$1";; diff --git a/t/t3418-rebase-continue.sh b/t/t3418-rebase-continue.sh index c145dbac38..185a491089 100755 --- a/t/t3418-rebase-continue.sh +++ b/t/t3418-rebase-continue.sh @@ -239,5 +239,14 @@ test_rerere_autoupdate -m GIT_SEQUENCE_EDITOR=: && export GIT_SEQUENCE_EDITOR test_rerere_autoupdate -i test_rerere_autoupdate --preserve-merges +unset GIT_SEQUENCE_EDITOR + +test_expect_success 'the todo command "break" works' ' + rm -f execed && + FAKE_LINES="break exec_>execed" git rebase -i HEAD && + test_path_is_missing execed && + git rebase --continue && + test_path_is_file execed +' test_done -- cgit v1.2.3