On Wed, Sep 26, 2018 at 6:25 PM Josh Steadmon <steadmon@xxxxxxxxxx> wrote: > > This is the second version of my series to add a new protocol v2 command > for archiving, with support for HTTP(S). > > NEEDSWORK: a server built with this series is not backwards-compatible > with clients that set GIT_PROTOCOL=version=2 or configure > protocol.version=2. The old client will unconditionally send "argument > ..." packet lines, which breaks the server's expectations of a > "command=archive" request, So if an old client sets protocol to v2, it would only apply that protocol version to fetch, not archive, so it would start following a v0 conversation, but as the protocol version is set, it would be transmitted to the server. This sounds like a bug in the client? > while the server's capability advertisement > in turn breaks the clients expectation of either an ACK or NACK. Could a modern client send either another protocol version (3?) or a special capability along the protocol version ("fixed_archive") > I've been discussing workarounds for this with Jonathan Nieder, but > please let me know if you have any suggestions for v3 of this series. Care to open the discussion to the list? What are the different approaches, what are the pros/cons?