Am 10/3/2012 21:41, schrieb Shawn Pearce: > On Wed, Oct 3, 2012 at 11:55 AM, Jeff King <peff@xxxxxxxx> wrote: >> On Wed, Oct 03, 2012 at 11:53:35AM -0700, Junio C Hamano wrote: >>> Jeff King <peff@xxxxxxxx> writes: >>> >>>>> Has there been any work on extending the protocol so that the client >>>>> tells the server what refs it's interested in? >>>> >>>> I don't think so. It would be hard to do in a backwards-compatible way, >>>> because the advertisement is the first thing the server says, before it >>>> has negotiated any capabilities with the client at all. >>> >>> That is being discussed but hasn't surfaced on the list. >> >> Out of curiosity, how are you thinking about triggering such a new >> behavior in a backwards-compatible way? Invoke git-upload-pack2, and >> fall back to reconnecting to start git-upload-pack if it fails? > > Basically, yes. New clients connect for git-upload-pack2. Over git:// > the remote peer will just close the TCP socket with no messages. The > client can fallback to git-upload-pack and try again. Over SSH a > similar thing will happen in the sense there is no data output from > the remote side, so the client can try again. These connections are bidirectional. Upload-pack can just start advertising refs in the "v1" way and announce a "v2" capability and listen for response in parallel. A v2 capable client can start sending "wants" or some other signal as soon as it sees the "v2" capability. Upload-pack, which was listening for responses in parallel, can interrupt its advertisements and continue with v2 protocol from here. This sounds so simple (not the implementation, of course) - I must be missing something. -- Hannes -- 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