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

Re: Git Smart HTTP with HTTP/2.0

From
ILIlari Liusvaara <ilari.liusvaara@elisanet.fi>
Date
Jul 11, 2015, 18:26 UTC
Message-ID
<20150711182657.GA8589@LK-Perkele-VII>
In-Reply-To
<CAJo=hJs21m1C6+rdvCid311-TapK=QKLkqrH8aUZmzHH7CpVug@mail.gmail.com>
On Sat, Jul 11, 2015 at 10:23:09AM -0700, Shawn Pearce wrote:
Show 19 quoted lines
> On Sat, Jul 11, 2015 at 12:00 AM, Ilari Liusvaara
> <ilari.liusvaara@elisanet.fi> wrote:
> > On Sat, Jul 11, 2015 at 11:10:48AM +0800, ForceCharlie wrote:
> >
> >> Frequently used Git developers often feel Git HTTP protocol is not
> >> satisfactory, slow and unstable.This is because the HTTP protocol itself
> >> decides
> >
> > Note that there are already two versions of HTTP transport, the old "dumb"
> > one and the newer "smart" one.
> >
> > The smart one is difficult to speed up (due to nature of the negotiations),
> > but usually is pretty reliable (the efficiency isn't horrible).
> 
> The negotiation in smart-HTTP actually has some bad corner cases. Each
> round of negotiation requires a new POST resupplying all previously
> agreed upon SHA-1s, and a batch of new SHA-1s. We have observed many
> rounds where this POST is MiBs in size because the peers can't quite
> agree and have to keep digging through history.
Oh yeah that... Well, that is artifact of HTTP semantics.
Show 11 quoted lines
> > Now, the old "dumb" protocol is pretty unreliable and slow. HTTP/2 probably
> > can't do anything with the reliability problems, but probably could improve
> > the speed a bit.
> >
> > Websockets over HTTP/2 (a.k.a. "websockets2") has not been defined yet.
> > With Websockets(1), it would probably already be possible to tunnel the
> > native git smart transport protocol over it. Probably not worth it.
> 
> Another option is to tunnel using gRPC (grpc.io). libcurl probably
> can't do this. And linking grpc.io library into git-core is crazy. So
> its probably a non-starter. But food for thought.

Wouldn't it link into git-remote-http (and on the server side, one could use pipes to talk to git)?

But supporting websockets in git-remote-http could get annoying, especially for wss:// (https://). Dunno how bad gRPC would be.

-Ilari
Previous: Shawn PearceNext: Shawn Pearce
Message 4 of 5 in “Git Smart HTTP with HTTP/2.0”
  1. ForceCharlieJul 11, 2015
  2. Ilari LiusvaaraJul 11, 2015
  3. Shawn PearceJul 11, 2015
  4. Ilari LiusvaaraJul 11, 2015
  5. Shawn PearceJul 11, 2015

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.