Re: [PATCH] send-pack: use OBJECT_INFO_QUICK to check negative objects
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 4, 2019, 21:37 UTC
- Message-ID
- <xmqqr21j3h7e.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <20191204205353.118168-1-jonathantanmy@google.com>
Jonathan Tan <jonathantanmy@google.com> writes:
Show 9 quoted lines
> As for whether we should do it in the first place, I think that having 2 > orthogonal flags is clearer than having 1 that controls fetch > (SKIP_FETCH) and 1 that does both (QUICK) without any that recheck > packed, but I'm quite familiar with this part of the code, so perhaps > I'm the wrong person to ask - we should optimize for the typical Git > developer who just wants to access the object store. Judging from the > frequency in which we encounter this issue (as Peff says), maybe we > should go ahead and make QUICK imply SKIP_FETCH but not the other way > around.
Thanks for thinking this through. I am OK with that direction.
> (It is also possible just to make both imply the other and unify > QUICK and SKIP_FETCH into one flag - I am not opposed to that - > although read my email that Peff linked to see why bidirectional > implication is correct in one sense but incorrect in another.)
Yup, also from the old message:
Show 6 quoted lines
> Having said that, perhaps we should consider promisor-remote.c as > low-level code and expect it to know that objects are fetched into a > packfile (as opposed to loose objects), so it can safely use QUICK > (which is documented as checking packed after packed and loose). If no > one disagrees, I can make such a patch after jt/push-avoid-lazy-fetch is > merged to master (as is the plan, according to What's Cooking [1]).
I agree that it makes sense to treat promisor-remote.c as the low-level implementation detail that is allowed to be intimately familiar with how its behaviour would interact with QUICK and SKIP_FETCH options.
Thanks.