From: Junio C Hamano Date: Mon, 02 Mar 2015 02:58:48 GMT Subject: Re: [RFC/PATCH 0/5] protocol v2 for upload-pack Message-ID: In-Reply-To: <54F2D7C2.4010700@kdbg.org> Johannes Sixt writes: > You may also consider an idea I proposed here: > > http://thread.gmane.org/gmane.comp.version-control.git/206886/focus=207342 > > The idea is that the exchange begins as usual, but when the v2 client > sees that the server also supports v2, then it begins sending its > desired refs. When the server notices that the client spoke while it > was still sending out its megabytes of ref advertisments, it stops the > v1 advertisements and continues with v2 protocol. Yes, it would be possible to design the protocol in such a way provided if we can find a v1 protocol message that we can use so that a new client will send it as "I am a client capable of talking the new protocol" and the message appears as a no-op to older servers. And that would allow us to transparently upgrade the protocol in-line. That would be a big plus. And there seems to be such a message for both fetch and push protoocol, as discussed in $gmane/264512 a few days ago. But I think the current thinking is that it is OK to avoid the ugliness and complexity of having to say "oops, sorry but I did not hear your 'I am new enough' soon enough and sent a lot of v1 advertisement, let's resync with v2 protocol" and instead upgrade the old client upon the _next_ exchange (see $gmane/264309).