On Mon, Jul 06, 2020 at 10:38:05PM -0700, Jonathan Nieder wrote: > Git 2.26 used protocol v2 as its default protocol, but soon after > release, reports of edge-case regressions started rolling in. So Git > 2.27 returned to protocol v0 as a default (but with the various fixes > in place to make protocol v2 safe) and Git 2.28 will use protocol v0 > as default but enable protocol v2 for those adventurous users that > enable experimental features by setting feature.experimental=true. > > Thus if all goes well, by the time Git 2.29 is being released, we can > be confident in protocol v2 as a default again. Make it the default. > > This especially speeds up fetches from repositories with many refs, > such as https://chromium.googlesource.com/chromium/src. > > Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> > --- > Mostly sending this to get the discussion started about what changes > we want before flipping the default. I can't actually think of any changes we'd want to make. AFAIK aside from the negotiation problem, v2 is good to go. When we flipped it off by default for 2.27 out of caution, I had hoped we would flip it back on for the 2.28 cycle to get more exposure. I guess it may be too late for that now if we wanted to get more testing and exposure during the development cycle. But I'm not entirely convinced that buys us anything anyway. v2 was available via a config setting for at least a year, and major hosting sites supported it, and still nobody noticed the negotiation problem until it was turned on by default in 2.26. And that has been the only bug people have reported for 2.26. That implies to me that: - we won't get significantly more information by leaving v2-as-default in "next" or even "master" before it actually hits a release - there probably aren't other major problems lurking, given that people clearly upgraded to 2.26, found the negotiation problem, but never reported any other issues -Peff