Re: [RFC/PATCH 0/5] protocol v2 for upload-pack
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:03:56
Johannes Sixt [off-list ref] 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).