Re: [PATCH 3/4] mark_reachable_objects(): optionally collect broken refs
- From
Jeff King <peff@peff.net>
- Date
- Sep 24, 2015, 17:56 UTC
- Message-ID
- <20150924175615.GA15117@sigill.intra.peff.net>
- In-Reply-To
- <bcceeae4c8f7f690502651dd6cc537b2f4918fac.1443085919.git.johannes.schindelin@gmx.de>
On Thu, Sep 24, 2015 at 11:13:52AM +0200, Johannes Schindelin wrote:
Show 6 quoted lines
> The behavior of `mark_reachable_objects()` without this patch is that it > dies if it encounters a broken ref. This is sometimes undesirable, e.g. > when garbage collecting in a repository with a stale remote HEAD. > > So let's introduce an optional parameter to collect such broken refs. The > behavior of the function is unchanged if that parameter is `NULL`.
Similar comment to the last one. :)
I suspect the issues you are seeing are largely new due to the ref-paranoia work I did (merged in 05e816e37). We used to ignore broken refs at the for_each_ref() level, but now we feed them to the calling code (which generally chokes).
So in that sense, a simpler fix than your series would be to simply revert 8d42299 and ff4056bbc. :)
But I think those new checks are valuable, and we really just need to gracefully ignore the dangling-symref case (which is _a_ breakage, but not a dangerous one).
-Peff