This task is to upgrade git on the production cluster to 2.20. It comes with support for git protocol v2 which dramatically reduces the initial server advertisement when clients fetch objects. That leads to faster git fetches and less load on the git server side.
Some related references:
- The original problem statement from 2015 T103990
- Google announcement of git protocol v2 https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html
- A blog post written by @hashar Blog Post: Faster source code fetches thanks to git protocol version 2
T256810 determined we should go with git 2.20.
The CI images have already been switched.
- Add a global configuration setting to enable git protocol v2:
[protocol] version=2
That can then be disabled on an opt out basis if needed: git -c protocol.version=1.
- Install the git 2.20 package:
Buster | Comes with it by default |
Stretch | Configure the apt source list stretch-wikimedia component/git |
Jessie | Do we still care? |
List of versions can be found at https://debmonitor.wikimedia.org/packages/git