git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 0/5] Enable protocol v2 by default

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Dec 24, 2019, 00:58 UTC
Message-ID
<20191224005816.GC38316@google.com>
Hi,

The Git users at $DAYJOB have been using protocol v2 as a default for ~1.5 years now and others have been also reporting good experiences with it, so it seems like a good time to propose bumping the default version. It produces a significant performance improvement when fetching from repositories with many refs, such as https://chromium.googlesource.com/chromium/src.

This only affects the client, not the server. (The server already defaults to supporting protocol v2.)

This could go in 2.25 (most of the "next" population is likely already using protocol.version=2, so the -rc period would be one of the better ways to expand the user population using this) or could cook in "next" for a cycle. Either is fine by me.

Thoughts of all kinds welcome, as always.
Jonathan Nieder (5):
  fetch test: use more robust test for filtered objects
  config doc: protocol.version is not experimental
  test: request GIT_TEST_PROTOCOL_VERSION=0 when appropriate
  protocol test: let protocol.version override GIT_TEST_PROTOCOL_VERSION
  fetch: default to protocol version 2
 Documentation/config/protocol.txt    |  9 ++++-----
 protocol.c                           | 11 +++++------
 t/README                             |  4 ++--
 t/t5400-send-pack.sh                 |  2 +-
 t/t5500-fetch-pack.sh                | 23 ++++++++++++++++-------
 t/t5512-ls-remote.sh                 | 10 +++++-----
 t/t5515-fetch-merge-logic.sh         |  3 ++-
 t/t5516-fetch-push.sh                | 12 ++++++------
 t/t5539-fetch-http-shallow.sh        |  2 +-
 t/t5541-http-push-smart.sh           |  4 ++--
 t/t5551-http-fetch-smart.sh          | 12 ++++++------
 t/t5552-skipping-fetch-negotiator.sh |  2 +-
 t/t5700-protocol-v1.sh               |  3 ++-
 t/t7406-submodule-update.sh          |  2 +-
 14 files changed, 54 insertions(+), 45 deletions(-)
base-commit: 12029dc57db23baef008e77db1909367599210ee
Next: Jonathan Nieder
Message 1 of 17 in “Enable protocol v2 by default”
  1. 0/5 Enable protocol v2 by defaultJonathan Nieder, Dec 24, 2019
  2. 1/5 fetch test: use more robust test for filtered objectsJonathan Nieder, Dec 24, 2019
  3. Derrick StoleeDec 26, 2019
  4. 2/5 config doc: protocol.version is not experimentalJonathan Nieder, Dec 24, 2019
  5. 3/5 test: request GIT_TEST_PROTOCOL_VERSION=0 when appropriateJonathan Nieder, Dec 24, 2019
  6. Junio C HamanoDec 26, 2019
  7. 0/2 avoid use of "VAR= cmd" with a shell function (Re: [PATCH 3/5] test: request GIT_TEST_PROTOCOL_VERSION=0 when appropriate)Jonathan Nieder, Dec 26, 2019
  8. 1/2 fetch test: avoid use of "VAR= cmd" with a shell functionJonathan Nieder, Dec 26, 2019
  9. 2/2 t/check-non-portable-shell: detect "FOO= shell_func", tooJonathan Nieder, Dec 26, 2019
  10. Junio C HamanoDec 26, 2019
  11. Junio C HamanoDec 26, 2019
  12. Jonathan NiederDec 26, 2019
  13. fetch test: mark test of "skipping" haves as v0-onlyJonathan Nieder, Dec 26, 2019
  14. Eric SunshineDec 26, 2019
  15. 4/5 protocol test: let protocol.version override GIT_TEST_PROTOCOL_VERSIONJonathan Nieder, Dec 24, 2019
  16. 5/5 fetch: default to protocol version 2Jonathan Nieder, Dec 24, 2019
  17. Derrick StoleeDec 26, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.