rebase: prepare to do generic housekeeping
authorRamkumar Ramachandra <artagnon@gmail.com>
Sun, 12 May 2013 11:56:37 +0000 (17:26 +0530)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 May 2013 06:20:07 +0000 (23:20 -0700)
On successful completion of a rebase in git-rebase--$backend.sh, the
$backend script cleans up on its own and exits. The cleanup routine
is however, independent of the $backend, and each $backend script
unnecessarily duplicates this work:

rm -rf "$state_dir"
git gc --auto

Prepare git-rebase.sh for later patches that return control from each
$backend script back to us, for performing this generic cleanup
routine. The code that this patch adds is currently unreachable, and
will only start to be used when git-rebase--$backend.sh scripts are
taught to return control in later patches.

Another advantage is that git-rebase.sh can implement a generic
finish_rebase() to possibly do additional tasks in addition to the
cleanup.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-rebase.sh
index 2c692c33e95c4f75a5524a76a8136841cb2e4a57..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 () {