Subject: Re: [RFC/PATCH 0/5] protocol v2 for upload-pack

From: Johannes Sixt <[email-masked]>
Date: Sun, 01 Mar 2015 10:11:30 +0100

Am 28.02.2015 um 02:01 schrieb Stefan Beller:
> Heavily inspired by the ideas of Duy, who wrote the first
> patches nearly a year ago.
>
> Nguyễn Thái Ngọc Duy (2):
>    upload-pack: only accept capabilities on the first "want" line
>    upload-pack: support out of band client capability requests
>
> Stefan Beller (3):
>    connect.c: connect to a remote service with some flags
>    daemon.c: accept extra service arguments
>    WIP/Document the http protocol change
>
>   Documentation/git-upload-pack.txt                 | 10 +++++-
>   Documentation/technical/http-protocol.txt         |  4 +--
>   Documentation/technical/protocol-capabilities.txt |  4 +++
>   builtin/fetch-pack.c                              |  2 +-
>   builtin/send-pack.c                               |  2 +-
>   connect.c                                         | 21 ++++++------
>   connect.h                                         |  2 +-
>   daemon.c                                          | 37 +++++++++++++--------
>   transport.c                                       |  3 +-
>   upload-pack.c                                     | 39 +++++++++++++++++------
>   10 files changed, 86 insertions(+), 38 deletions(-)
>

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.

But Shawn pointed out that this would be difficult to implement in a 
JGit server because there is no way to poll the incoming channel while 
it is sending out refs.

-- Hannes