Subject: Re: [RFC/PATCH 0/3] silence missing-link warnings in some cases

From: Jeff King <[email-masked]>
Date: Mon, 1 Jun 2015 11:41:03 -0400

On Mon, Jun 01, 2015 at 08:03:05AM -0700, Junio C Hamano wrote:

> > The reason is that since git d3038d2 (prune: keep objects reachable from
> > recent objects, 2014-10-15), we will traverse objects that are not
> > reachable but have recent mtimes (within the 2-week prune expiration
> > window). Because they are not reachable, we may not actually have all of
> > their ancestors; we use the revs->ignore_missing_links option to avoid
> > making this a fatal error. But we still print an error message. This
> > series suppresses those messages.
> 
> Nice finding.  One of us should have thought of this kind of fallout
> when we discussed that change, but we apparently failed.

I think the real culprit is that this should have been added along with
ignore_missing_links in the first place. That came along with the bitmap
code, but I was too busy focusing on the hard problems there to notice.
:)

> The fixes make sense to me (I haven't carefully read the
> implementation, but design/approach explained in the proposed log
> messages are very sound), and I think 3/3 is a good thing to do,
> too, in the new world order after d3038d2.

I think it's rather the opposite. In a post-d3038d2 world, a missing
object is _more_ likely to be a real corruption, and we would probably
prefer to complain about it. I am on the fence though.

-Peff