Re: git-pull from git.git - no remote ref for pu or next?
- From
Linus Torvalds <torvalds@osdl.org>
- Date
- Dec 12, 2006, 19:48 UTC
- Message-ID
- <Pine.LNX.4.64.0612121144220.3535@woody.osdl.org>
- In-Reply-To
- <Pine.LNX.4.63.0612122031450.2807@wbgn013.biozentrum.uni-wuerzburg.de>
On Tue, 12 Dec 2006, Johannes Schindelin wrote:
Show 12 quoted lines
> On Tue, 12 Dec 2006, Nicolas Pitre wrote:
>
> > On Tue, 12 Dec 2006, Johannes Schindelin wrote:
> >
> > > But it would become a non-problem when the HTTP transport would learn
> > > to read and interpret the .idx files, basically constructing thin
> > > packs from parts of the .pack files ("Content-Range:" comes to
> > > mind)...
> >
> > Woooh.
>
> Does that mean "Yes, I'll do it"? ;-)Umm. I hope it means "Woooh, that's crazy talk".
You do realize that then you need to teach the http-walker about walking the delta chain all the way up? For big pulls, you're going to be a lot _slower_ than just downloading the whole dang thing, because the delta objects are often just ~40 bytes, and you've now added a ping-pong latency for each such small transfer.
You don't need to download many such small ranges, and suddenly the few hundred ping-pongs that got you a few tens of kB of data took longer than just downloading a big stream efficiently that got you everything.
One big reason the native git protocol is efficient is that it's largely a streaming protocol (apart from the early ref-walking, but even that tries to stream as much as possible, rather than having a back-and-forth latency for each query)