From: Junio C Hamano Date: Thu, 23 Dec 2010 00:49:37 GMT Subject: Re: Possible bug in "git rebase" (non-interactive) with regards to post-rewrite Message-ID: <7vd3ot48ke.fsf@alter.siamese.dyndns.org> In-Reply-To: <7vipyl4aqx.fsf@alter.siamese.dyndns.org> When "rebase --skip" is used to skip the last patch in the series, the code to wrap up the rewrite by copying the notes from old to new commits and also by running the post-rewrite hook was bypassed. Signed-off-by: Junio C Hamano --- git-am.sh | 7 ------- t/t5407-post-rewrite-hook.sh | 18 +++++++++++++++++- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/git-am.sh b/git-am.sh index de116a2..69474e5 100755 --- a/git-am.sh +++ b/git-am.sh @@ -554,13 +554,6 @@ then resume= fi -if test "$this" -gt "$last" -then - say Nothing to do. - rm -fr "$dotest" - exit -fi - while test "$this" -le "$last" do msgnum=`printf "%0${prec}d" $this` diff --git a/t/t5407-post-rewrite-hook.sh b/t/t5407-post-rewrite-hook.sh index 552da65..baa670c 100755 --- a/t/t5407-post-rewrite-hook.sh +++ b/t/t5407-post-rewrite-hook.sh @@ -10,7 +10,11 @@ test_expect_success 'setup' ' test_commit A foo A && test_commit B foo B && test_commit C foo C && - test_commit D foo D + test_commit D foo D && + git checkout A^0 && + test_commit E bar E && + test_commit F foo F && + git checkout master ' mkdir .git/hooks @@ -79,6 +83,18 @@ EOF verify_hook_input ' +test_expect_success 'git rebase --skip the last one' ' + git reset --hard F && + clear_hook_input && + test_must_fail git rebase --onto D A && + git rebase --skip && + echo rebase >expected.args && + cat >expected.data <