Re: [PATCH v4 00/35] protocol version 2
Brandon Williamswrites: > I've tried to keep building on the same base that I started with when > sending out a new version of series, mostly because I thought it was > easier to see what was different between rounds. Yes. It indeed is easier to see the evolution if the series does not get rebased needlessly. > I can, in the future, try to remember to put the commit its based on. > Do we have any sort of guidance about the best practice here? I recall we taught a new "--base" option to "format-patch" not too long ago, so one way to do so may be: $ git format-patch --cover-letter --base=v2.16.0-rc0 master..bw/protocol-v2 $ tail -4 -cover*.txt base-commit: 1eaabe34fc6f486367a176207420378f587d3b48 -- 2.16.2-345-g7e31236f65 perhaps?
Re: [PATCH v4 00/35] protocol version 2
On 03/01, Junio C Hamano wrote: > Brandon Williamswrites: > > > Lots of changes since v3 (well more than between v2 and v3). Thanks for > > all of the reviews on the last round, the series is getting more > > polished. > > > > * Eliminated the "# service" line from the response from an HTTP > >server. This means that the response to a v2 request is exactly the > >same regardless of which transport you use! Docs for this have been > >added as well. > > * Changed how ref-patterns work with the `ls-refs` command. Instead of > >using wildmatch all patterns must either match exactly or they can > >contain a single '*' character at the end to mean that the prefix > >must match. Docs for this have also been added. > > * Lots of updates to the docs. Including documenting the > >`stateless-connect` remote-helper command used by remote-curl to > >handle the http transport. > > * Fixed a number of bugs with the `fetch` command, one of which didn't > >use objects from configured alternates. > > I noticed that this round is built on top of v2.16.0-rc0. It > certainly makes it easier to compare against the previous round > which was built on top of that old commit and it is very much > appreciated that a reroll does not involve pointless rebases. > > For those who are helping from sidelines, it may be ehlpful to > mention where in the history this was developed on, though, as > applying these on the current 'master' has a handful of small > conflicts. > > Thanks, will replace and will comment on individual patches as > needed. I've tried to keep building on the same base that I started with when sending out a new version of series, mostly because I thought it was easier to see what was different between rounds. I can, in the future, try to remember to put the commit its based on. Do we have any sort of guidance about the best practice here? -- Brandon Williams
Re: [PATCH v4 00/35] protocol version 2
Brandon Williamswrites: > Lots of changes since v3 (well more than between v2 and v3). Thanks for > all of the reviews on the last round, the series is getting more > polished. > > * Eliminated the "# service" line from the response from an HTTP >server. This means that the response to a v2 request is exactly the >same regardless of which transport you use! Docs for this have been >added as well. > * Changed how ref-patterns work with the `ls-refs` command. Instead of >using wildmatch all patterns must either match exactly or they can >contain a single '*' character at the end to mean that the prefix >must match. Docs for this have also been added. > * Lots of updates to the docs. Including documenting the >`stateless-connect` remote-helper command used by remote-curl to >handle the http transport. > * Fixed a number of bugs with the `fetch` command, one of which didn't >use objects from configured alternates. I noticed that this round is built on top of v2.16.0-rc0. It certainly makes it easier to compare against the previous round which was built on top of that old commit and it is very much appreciated that a reroll does not involve pointless rebases. For those who are helping from sidelines, it may be ehlpful to mention where in the history this was developed on, though, as applying these on the current 'master' has a handful of small conflicts. Thanks, will replace and will comment on individual patches as needed.
[PATCH v4 00/35] protocol version 2
Lots of changes since v3 (well more than between v2 and v3). Thanks for all of the reviews on the last round, the series is getting more polished. * Eliminated the "# service" line from the response from an HTTP server. This means that the response to a v2 request is exactly the same regardless of which transport you use! Docs for this have been added as well. * Changed how ref-patterns work with the `ls-refs` command. Instead of using wildmatch all patterns must either match exactly or they can contain a single '*' character at the end to mean that the prefix must match. Docs for this have also been added. * Lots of updates to the docs. Including documenting the `stateless-connect` remote-helper command used by remote-curl to handle the http transport. * Fixed a number of bugs with the `fetch` command, one of which didn't use objects from configured alternates. Brandon Williams (35): pkt-line: introduce packet_read_with_status pkt-line: allow peeking a packet line without consuming it pkt-line: add delim packet support upload-pack: convert to a builtin upload-pack: factor out processing lines transport: use get_refs_via_connect to get refs connect: convert get_remote_heads to use struct packet_reader connect: discover protocol version outside of get_remote_heads transport: store protocol version protocol: introduce enum protocol_version value protocol_v2 test-pkt-line: introduce a packet-line test helper serve: introduce git-serve ls-refs: introduce ls-refs server command connect: request remote refs using v2 transport: convert get_refs_list to take a list of ref patterns transport: convert transport_get_remote_refs to take a list of ref patterns ls-remote: pass ref patterns when requesting a remote's refs fetch: pass ref patterns when fetching push: pass ref patterns when pushing upload-pack: introduce fetch server command fetch-pack: perform a fetch using v2 fetch-pack: support shallow requests connect: refactor git_connect to only get the protocol version once connect: don't request v2 when pushing transport-helper: remove name parameter transport-helper: refactor process_connect_service transport-helper: introduce stateless-connect pkt-line: add packet_buf_write_len function remote-curl: create copy of the service name remote-curl: store the protocol version the server responded with http: allow providing extra headers for http requests http: don't always add Git-Protocol header http: eliminate "# service" line when using protocol v2 remote-curl: implement stateless-connect command remote-curl: don't request v2 when pushing .gitignore | 1 + Documentation/gitremote-helpers.txt | 32 ++ Documentation/technical/protocol-v2.txt | 401 +++ Makefile| 7 +- builtin.h | 2 + builtin/clone.c | 2 +- builtin/fetch-pack.c| 20 +- builtin/fetch.c | 18 +- builtin/ls-remote.c | 12 +- builtin/receive-pack.c | 6 + builtin/remote.c| 2 +- builtin/send-pack.c | 20 +- builtin/serve.c | 30 ++ builtin/upload-pack.c | 74 +++ connect.c | 364 ++ connect.h | 7 + fetch-pack.c| 339 - fetch-pack.h| 4 +- git.c | 2 + http-backend.c | 8 +- http.c | 25 +- http.h | 7 + ls-refs.c | 144 ++ ls-refs.h | 9 + pkt-line.c | 147 +- pkt-line.h | 78 +++ protocol.c | 2 + protocol.h | 1 + refs.c | 14 + refs.h | 7 + remote-curl.c | 278 ++- remote.h| 11 +- serve.c | 260 ++ serve.h | 15 + t/helper/test-pkt-line.c| 64 +++ t/t5701-git-serve.sh| 176 +++ t/t5702-protocol-v2.sh | 273 +++ transport-helper.c | 87 ++-- transport-internal.h| 9 +- transport.c | 125 +++-- transport.h | 18 +- upload-pack.c | 616 ++-- upload-pack.h | 21 + 43 files changed, 3370 insertions(+), 368 deletions(-) create