aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-12-22 16:50:28 -0800
committerJunio C Hamano <gitster@pobox.com>2010-12-22 16:50:28 -0800
commitef88ad238779c4eadba9f179146fe213f047b89f (patch)
tree2830c1801a97e9e2c3e408ecaf7d89459c14d422
parent77e572653b5089c9e3639fe4088f59e4cfef4eea (diff)
downloadgit-ef88ad238779c4eadba9f179146fe213f047b89f.tar.gz
git-ef88ad238779c4eadba9f179146fe213f047b89f.tar.xz
rebase --skip: correctly wrap-up when skipping the last patch
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 <gitster@pobox.com>
-rwxr-xr-xgit-am.sh7
-rwxr-xr-xt/t5407-post-rewrite-hook.sh18
2 files changed, 17 insertions, 8 deletions
diff --git a/git-am.sh b/git-am.sh
index de116a29e..69474e5da 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 552da65a6..baa670cea 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 <<EOF &&
+$(git rev-parse E) $(git rev-parse HEAD)
+EOF
+ verify_hook_input
+'
+
test_expect_success 'git rebase -m' '
git reset --hard D &&
clear_hook_input &&