rebase -i: return control to caller, for housekeeping
[gitweb.git] / git-rebase.sh
index b2f1c76dc3ede707870564a8ba73af6d1753e95c..f8b533d18352c86b16b4507870517b8fe57b26ee 100755 (executable)
@@ -150,6 +150,13 @@ run_specific_rebase () {
                autosquash=
        fi
        . git-rebase--$type
+       ret=$?
+       if test $ret -eq 0
+       then
+               git gc --auto &&
+               rm -rf "$state_dir"
+       fi
+       exit $ret
 }
 
 run_pre_rebase_hook () {
@@ -473,7 +480,7 @@ case "$#" in
                head_name="detached HEAD"
                branch_name=HEAD ;# detached
        fi
-       orig_head=$(git rev-parse --verify "${branch_name}^0") || exit
+       orig_head=$(git rev-parse --verify HEAD) || exit
        ;;
 *)
        die "BUG: unexpected number of arguments left to parse"