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

Re: [RFC 2/2] Add Git-aware CGI for Git-aware smart HTTP transport

From
Shawn O. Pearce <spearce@spearce.org>
Date
Aug 5, 2008, 01:57 UTC
Message-ID
<20080805015717.GB383@spearce.org>
In-Reply-To
<4897AE53.4030107@zytor.com>
"H. Peter Anvin" <hpa@zytor.com> wrote:
Show 9 quoted lines
> Shawn O. Pearce wrote:
>>
>> I think it is a really good idea.  Then clients don't have to worry
>> about which HTTP URL is the "correct" one for them to be using.
>
> Not arguing that URL compatibility isn't a good thing, but there are  
> other ways to accomplish it, too.  After detecting either a smart or  
> dumb server, we can use a redirect to point them to a different URL, as  
> appropriate.
I'm not sure this is necessary.

Of course it all comes down to "how does an admin map Git repositories into the URL space of the server"?

I thought it would be simple if the admin was able to map repositories using a ScriptAlias and allow the server to perform path info translation to give us the filesystem location of the repository. Then we don't have to configure our own map of the available Git repositories.

Once you do that though you now have the URL space associated with that repository served by a CGI. For older clients we need to either serve them the file, or issue a redirect to serve the file. The redirect is messy because we need some configuration to explain where the files are available in the server's URL space.

Or you go the other way, and have newer git+http clients try to find the git aware server by a redirect. Again we have to explain where that git aware server is in the URL space of the server.

*sigh*
> Furthermore, in the case of round-robin sites like kernel.org, this is  
> actually *mandatory* in the case of a stateful server (we need a  
> redirect to a server-specific URL), and highly recommended in the case  
> of a stateless server (because of potential skew.)

Well, the git+http protocol will hold all state in the client, making each RPC a stateless RPC operation. The only issue is then dealing with skew in a server farm.

I guess we need to ask client implementations to honor a redirect on the first request and reuse that new base URL for all subsequent requests that are part of the same "operation". Then server farms can issue a redirect to a server-specific hostname if a client comes in with a round-robin DNS hostname, thus ensuring that for this current operation there isn't skew.

-- 
Shawn.
Previous: H. Peter AnvinNext: H. Peter Anvin
Message 37 of 40 in “More on git over HTTP POST”
  1. H. Peter AnvinAug 1, 2008
  2. Shawn O. PearceAug 2, 2008
  3. Daniel StenbergAug 2, 2008
  4. Shawn O. PearceAug 2, 2008
  5. Petr BaudisAug 2, 2008
  6. Shawn O. PearceAug 2, 2008
  7. Shawn O. PearceAug 3, 2008
  8. Junio C HamanoAug 3, 2008
  9. Shawn O. PearceAug 3, 2008
  10. H. Peter AnvinAug 3, 2008
  11. Shawn O. PearceAug 3, 2008
  12. david@lang.hmAug 3, 2008
  13. H. Peter AnvinAug 3, 2008
  14. H. Peter AnvinAug 3, 2008
  15. H. Peter AnvinAug 3, 2008
  16. Shawn O. PearceAug 3, 2008
  17. H. Peter AnvinAug 3, 2008
  18. H. Peter AnvinAug 3, 2008
  19. Mike HommeyAug 3, 2008
  20. 1/2 Add backdoor options to receive-pack for use in Git-aware CGIShawn O. Pearce, Aug 3, 2008
  21. 2/2 Add Git-aware CGI for Git-aware smart HTTP transportShawn O. Pearce, Aug 3, 2008
  22. H. Peter AnvinAug 3, 2008
  23. Shawn O. PearceAug 3, 2008
  24. Junio C HamanoAug 3, 2008
  25. Shawn O. PearceAug 4, 2008
  26. Rogan DawesAug 4, 2008
  27. Johannes SchindelinAug 4, 2008
  28. Rogan DawesAug 4, 2008
  29. Johannes SchindelinAug 4, 2008
  30. Shawn O. PearceAug 4, 2008
  31. Rogan DawesAug 4, 2008
  32. Shawn O. PearceAug 4, 2008
  33. Rogan DawesAug 4, 2008
  34. H. Peter AnvinAug 5, 2008
  35. Shawn O. PearceAug 5, 2008
  36. H. Peter AnvinAug 5, 2008
  37. Shawn O. PearceAug 5, 2008
  38. H. Peter AnvinAug 5, 2008
  39. Add Git-aware CGI for Git-aware smart HTTP transportH. Peter Anvin, Aug 13, 2008
  40. Shawn O. PearceAug 13, 2008

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.