diff options
-rwxr-xr-x | git-rebase--interactive.sh | 5 | ||||
-rwxr-xr-x | t/t5407-post-rewrite-hook.sh | 16 |
2 files changed, 19 insertions, 2 deletions
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 415ae72dbc..8a2771f1f9 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -484,7 +484,7 @@ do_next () { mark_action_done pick_one $sha1 || die_with_patch $sha1 "Could not apply $sha1... $rest" - echo "$1" > "$DOTEST"/stopped-sha + echo "$sha1" > "$DOTEST"/stopped-sha make_patch $sha1 git rev-parse --verify HEAD > "$AMEND" warn "Stopped at $sha1... $rest" @@ -732,9 +732,10 @@ first and then run 'git rebase --continue' again." test -n "$amend" && git reset --soft $amend die "Could not commit staged changes." } - record_in_rewritten "$(cat "$DOTEST"/stopped-sha)" fi + record_in_rewritten "$(cat "$DOTEST"/stopped-sha)" + require_clean_work_tree do_rest ;; diff --git a/t/t5407-post-rewrite-hook.sh b/t/t5407-post-rewrite-hook.sh index f0f91f149d..552da65a61 100755 --- a/t/t5407-post-rewrite-hook.sh +++ b/t/t5407-post-rewrite-hook.sh @@ -180,4 +180,20 @@ EOF verify_hook_input ' +test_expect_success 'git rebase -i (double edit)' ' + git reset --hard D && + clear_hook_input && + FAKE_LINES="edit 1 edit 2" git rebase -i B && + git rebase --continue && + echo something > foo && + git add foo && + git rebase --continue && + echo rebase >expected.args && + cat >expected.data <<EOF && +$(git rev-parse C) $(git rev-parse HEAD^) +$(git rev-parse D) $(git rev-parse HEAD) +EOF + verify_hook_input +' + test_done |