On Wed, Nov 02, 2011 at 03:41:36PM -0700, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > Which is all a roundabout way of saying that the git protocol is really > > the sane way to do efficient transfers. An alternative, much simpler > > scheme would be for the server to just say: > > > > - if you have nothing, then prime with URL http://host/bundle > > > > And then _only_ clone would bother with checking mirrors. People doing > > fetch would be expected to do it often enough that not being resumable > > isn't a big deal. > > I think that is a sensible place to start. OK. That had been my original intent, but somebody (you?) mentioned the "if you have X" thing at the GitTogether, which got me thinking. I don't mind starting slow, as long as we don't paint ourselves into a corner for future expansion. I'll try to design the data format for specifying the mirror locations with that extension in mind. Even if the bundle thing ends up too wasteful, it may still be useful to offer a "if you don't have X, go see Y" type of mirror when "Y" is something efficient, like git:// at a faster host (i.e., the "I built 3 commits on top of Linus" case). > A more fancy conditional "If you have X then fetch this, if you have Y > fetch that, ..." sounds nice but depending on what branch you are fetching > the answer has to be different. If we were to do that, the natural place > for the server to give the redirect instruction to the client is after the > client finishes saying "want", and before the client starts saying "have". Agreed. I was really trying to avoid protocol extensions, though, at least for an initial version. I'd like to see how far we can get doing the simplest thing. -Peff -- 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