diff options
author | Jeff King <peff@peff.net> | 2016-01-13 13:47:18 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-01-13 12:04:53 -0800 |
commit | 8c24f5b022095f4735fcb73364ccae7d97576636 (patch) | |
tree | 09cd5d291ff1284d5dc9198b2e03a0b42b662118 | |
parent | 24358560c3c0ab51c9ef8178d99f46711716f6c0 (diff) | |
download | git-jk/ok-to-fail-gc-auto-in-rebase.tar.gz |
rebase: ignore failures from "gc --auto"jk/ok-to-fail-gc-auto-in-rebase
After rebasing, we call "gc --auto" to clean up if we
created a lot of loose objects. However, we do so inside an
&&-chain. If "gc --auto" fails (e.g., because a previous
background gc blocked us by leaving "gc.log" in place),
then:
1. We will fail to clean up the state directory, leaving
the user stuck in the rebase forever (even "git am
--abort" doesn't work, because it calls "gc --auto"!).
2. In some cases, we may return a bogus exit code from
rebase, indicating failure when everything except the
auto-gc succeeded.
We can fix this by ignoring the exit code of "gc --auto".
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-rebase.sh | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/git-rebase.sh b/git-rebase.sh index 1757404bc2..e8b6144aae 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -176,7 +176,7 @@ You can run "git stash pop" or "git stash drop" at any time. finish_rebase () { apply_autostash && - git gc --auto && + { git gc --auto || true; } && rm -rf "$state_dir" } |