Re: [RFC/PATCH 0/5] protocol v2 for upload-pack
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 2, 2015, 02:58 UTC
- Message-ID
- <xmqqmw3wf6l3.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <54F2D7C2.4010700@kdbg.org>
Johannes Sixt <j6t@kdbg.org> writes:
Show 9 quoted lines
> 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).