From: Jeff King Date: Wed, 13 Jan 2016 18:47:18 +0000 (-0500) Subject: rebase: ignore failures from "gc --auto" X-Git-Tag: v2.7.1~19^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8c24f5b022095f4735fcb73364ccae7d97576636;p=thirdparty%2Fgit.git rebase: ignore failures from "gc --auto" 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 Signed-off-by: Junio C Hamano --- 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" }