summaryrefslogtreecommitdiff
path: root/git-rebase.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-06-16 10:06:57 -0700
committerJunio C Hamano <gitster@pobox.com>2014-06-16 10:06:57 -0700
commit4a43d4f98a1a6a472ce1e87c64cb6df0d1653d02 (patch)
tree298f55985603d82fbf0b56512e3a434dc08242a6 /git-rebase.sh
parent9d1d882e9c1d4a34e2ae3af47d50c1f115a6cf84 (diff)
parentddb5432d2390e1957e473618009ba3d2fbbf29a7 (diff)
downloadgit-4a43d4f98a1a6a472ce1e87c64cb6df0d1653d02.tar.gz
Merge branch 'rr/rebase-autostash-fix'
* rr/rebase-autostash-fix: rebase -i: test "Nothing to do" case with autostash rebase -i: handle "Nothing to do" case with autostash
Diffstat (limited to 'git-rebase.sh')
-rwxr-xr-xgit-rebase.sh11
1 files changed, 10 insertions, 1 deletions
diff --git a/git-rebase.sh b/git-rebase.sh
index 5c7a0a1a58..06c810b64f 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -155,7 +155,7 @@ move_to_original_branch () {
esac
}
-finish_rebase () {
+apply_autostash () {
if test -f "$state_dir/autostash"
then
stash_sha1=$(cat "$state_dir/autostash")
@@ -171,6 +171,10 @@ You can run "git stash pop" or "git stash drop" at any time.
'
fi
fi
+}
+
+finish_rebase () {
+ apply_autostash &&
git gc --auto &&
rm -rf "$state_dir"
}
@@ -186,6 +190,11 @@ run_specific_rebase () {
if test $ret -eq 0
then
finish_rebase
+ elif test $ret -eq 2 # special exit status for rebase -i
+ then
+ apply_autostash &&
+ rm -rf "$state_dir" &&
+ die "Nothing to do"
fi
exit $ret
}