Re: Help cloning over http.
- From
Daniel Barkalow <barkalow@iabervon.org>
- Date
- Sep 17, 2005, 17:37 UTC
- Message-ID
- <Pine.LNX.4.63.0509171235330.23242@iabervon.org>
- In-Reply-To
- <7vvf10axia.fsf_-_@assigned-by-dhcp.cox.net>
On Sat, 17 Sep 2005, Junio C Hamano wrote:
Show 6 quoted lines
> Even when repository is packed, the new "we trust only the refs > we already have" code wasted too much time verifying what are > already in packs, walking down to the root commits. Since we > slurp all the necessary packs upfront and run verify pack on > them, temporarily register their edge commits as "known to be > good" before invoking git-http-fetch.
This is a somewhat special situation, because we're assuming that the packs are a complete set. When git-http-fetch downloads a pack, it still needs to know if that pack uses other stuff, in which case it probably needs to download it. The old code actually wouldn't have worked properly if the first pack didn't include any blobs that were still in the latest version, because it wouldn't track commits through the pack and only generally worked with multiple packs because it would need blobs from every pack to produce the current tree.
I think that this gets particularly tricky with alternates, where the necessary packs for ancient history may not actually be in the list of packs in the repository we're looking at.
-Daniel *This .sig left intentionally blank*