aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamkumar Ramachandra <artagnon@gmail.com>2013-05-12 17:26:37 +0530
committerJunio C Hamano <gitster@pobox.com>2013-05-12 23:20:07 -0700
commitf5f758a5df470352ed46863288551f25fe9c7ea7 (patch)
tree0d84aecea496c0b5cbdab292e7ac260d6d1600a3
parent1224f3d0f1b47fc640e76b053f25d91e3ca84bcf (diff)
downloadgit-f5f758a5df470352ed46863288551f25fe9c7ea7.tar.gz
git-f5f758a5df470352ed46863288551f25fe9c7ea7.tar.xz
rebase: prepare to do generic housekeeping
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>
-rwxr-xr-xgit-rebase.sh7
1 files changed, 7 insertions, 0 deletions
diff --git a/git-rebase.sh b/git-rebase.sh
index 2c692c33e..f8b533d18 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -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 () {