summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Ramkumar Ramachandra <artagnon@gmail.com>2013-06-13 21:36:12 +0530
committerLibravatar Junio C Hamano <gitster@pobox.com>2013-06-13 15:30:02 -0700
commitaf2f0ebcbdb164043d6ad72c81c6ce5cdadf63b5 (patch)
tree62dbd12b9cee7fb6ac4d4eee42b2d31ee65db8f7
parentrebase: guard against missing files in read_basic_state() (diff)
downloadtgif-af2f0ebcbdb164043d6ad72c81c6ce5cdadf63b5.tar.xz
rebase: finish_rebase() in fast-forward rebase
In the following case $ git rebase master Fast-forwarded autostash-fix to master. The autostash is not applied automatically, because this codepath forgets to call finish_rebase(). Fix this. Also add a test to guard against regressions. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-rebase.sh1
-rwxr-xr-xt/t3420-rebase-autostash.sh11
2 files changed, 12 insertions, 0 deletions
diff --git a/git-rebase.sh b/git-rebase.sh
index 2122fe030e..154d4be0a4 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -579,6 +579,7 @@ if test "$mb" = "$orig_head"
then
say "$(eval_gettext "Fast-forwarded \$branch_name to \$onto_name.")"
move_to_original_branch
+ finish_rebase
exit 0
fi
diff --git a/t/t3420-rebase-autostash.sh b/t/t3420-rebase-autostash.sh
index 479cbb215f..1bde007160 100755
--- a/t/t3420-rebase-autostash.sh
+++ b/t/t3420-rebase-autostash.sh
@@ -141,6 +141,17 @@ testrebase() {
'
}
+test_expect_success "rebase: fast-forward rebase" '
+ test_config rebase.autostash true &&
+ git reset --hard &&
+ git checkout -b behind-feature-branch feature-branch~1 &&
+ test_when_finished git branch -D behind-feature-branch &&
+ echo dirty >>file1 &&
+ git rebase feature-branch &&
+ grep dirty file1 &&
+ git checkout feature-branch
+'
+
testrebase "" .git/rebase-apply
testrebase " --merge" .git/rebase-merge
testrebase " --interactive" .git/rebase-merge