Re: Bad objects error since upgrading GitHub servers to 1.6.1
- From
Jeff King <peff@peff.net>
- Date
- Jan 28, 2009, 07:55 UTC
- Message-ID
- <20090128075515.GA1133@coredump.intra.peff.net>
- In-Reply-To
- <7vd4e7x5ov.fsf@gitster.siamese.dyndns.org>
On Tue, Jan 27, 2009 at 11:14:56PM -0800, Junio C Hamano wrote:
> I've been toying with an idea for an alternative solution, and need > somebody competent to bounce it around with.
Well, unfortunately for you, you are stuck with me. ;P
Show 9 quoted lines
> Here is my work in progress. It introduces "ignore-missing-negative" > option to the revision traversal machinery, and squelches the places we > currently complain loudly and die when we expect an object to be > available, when the color we are going to paint the object with is > UNINTERESTING. > > I have a mild suspicion that it may even be the right thing to ignore them > unconditionally, and it might even match the intention of Linus's original > code. That would make many hunks in this patch much simpler.
I'm not sure it is a good idea to do so unconditionally. In the case of negatives for transferring files, a missed negative is simply a missed opportunity for optimizing the resulting pack.
But in other cases, it silently gives you the wrong answer. For example, consider a history like:
C--D
/
A--B
\
E--Fnow let's suppose I have everything except 'E'. If I ask for
git rev-list F..D
then it will not realize that A and B are uninteresting, and I will get A-B-C-D. I think it is much better for git to complain loudly that it could not compute the correct answer.
Am I understanding the issue correctly?
-Peff