Re: [PATCH v3 4/4] clone: open a shortcut for connectivity check
From: Duy Nguyen <hidden>
Date: 2016-06-15 22:57:08
On Fri, May 3, 2013 at 11:15 PM, Junio C Hamano [off-list ref] wrote:
Nguyễn Thái Ngọc Duy [off-list ref] writes:quoted
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.
quoted
"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 theDoes 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