Subject: [PATCH 0/8] protocol transition

From: Brandon Williams <[email-masked]>
Date: Wed, 13 Sep 2017 14:54:40 -0700

Here is the non-RFC version of of my proposed protocol transition plan which
can be found here:
https://public-inbox.org/git/[email-masked]/

The main take away from the comments on the RFC were that the first transition
shouldn't be drastic, so this patch set introduces protocol v1 which is simply
protocol v0 (which is what I'm calling the current git wire protocol) with a
single pkt-line containing a version string before the ref advertisement.

I have included tests for protocol version 1 to verify that it works with the
following transports: git://, file://, ssh://, and http://.  I have also
included an interop test to ensure that sending the version request out of band
doesn't cause issues with older servers.

Any and all comments and feedback are welcome, thanks!

Brandon Williams (8):
  pkt-line: add packet_write function
  protocol: introduce protocol extention mechanisms
  daemon: recognize hidden request arguments
  upload-pack, receive-pack: introduce protocol version 1
  connect: teach client to recognize v1 server response
  connect: tell server that the client understands v1
  http: tell server that the client understands v1
  i5700: add interop test for protocol transition

 Documentation/config.txt               |  16 ++
 Documentation/git.txt                  |   5 +
 Makefile                               |   1 +
 builtin/receive-pack.c                 |  14 ++
 cache.h                                |   9 +
 connect.c                              |  59 ++++++-
 daemon.c                               |  71 ++++++--
 http.c                                 |  18 ++
 pkt-line.c                             |   6 +
 pkt-line.h                             |   1 +
 protocol.c                             |  72 ++++++++
 protocol.h                             |  15 ++
 t/interop/i5700-protocol-transition.sh |  68 ++++++++
 t/lib-httpd/apache.conf                |   7 +
 t/t5700-protocol-v1.sh                 | 292 +++++++++++++++++++++++++++++++++
 upload-pack.c                          |  17 +-
 16 files changed, 655 insertions(+), 16 deletions(-)
 create mode 100644 protocol.c
 create mode 100644 protocol.h
 create mode 100755 t/interop/i5700-protocol-transition.sh
 create mode 100755 t/t5700-protocol-v1.sh

-- 
2.14.1.690.gbb1197296e-goog