On Fri, May 3, 2013 at 11:15 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > >> In order to make sure the cloned repository is good, we run "rev-list >> --objects --not --all $new_refs" on the repository. This is expensive >> on large repositories. This patch attempts to mitigate the impact in >> this special case. >> >> In the "good" clone case, we only have one pack. > > If "On large repositories" is the focus, we need to take into > account the fact that pack.packSizeLimit can split and store the > incoming packstream to multiple packs, so "only have one pack" is > misleading. I only had a quick look. But I don't think index-pack respects packSizeLimit. pack-objects does but only when --stdout is not used, which is not the case for pack transfer. > I think you can still do the same trick even when we split the pack > as index-pack will keep track of the objects it saw in the same > incoming pack stream (but I am writing this from memory without > looking at the original code you are touching, so please double > check). Yeah. As long we have only one incoming stream, we can still do the same verification. >> "index-pack + new checks" is still faster than the current "index-pack >> + rev-list", which is the whole point of this patch. If any of the > > Does the same check apply if we end up on the unpack-objects > codepath? No. unpack-objects does not do this and check_everything_connected should invoke rev-list like before. -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html