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

Re: Google Code: Support for Mercurial and Analysis of Git and Mercurial

From
Shawn O. Pearce <spearce@spearce.org>
Date
Apr 27, 2009, 21:15 UTC
Message-ID
<20090427211502.GI23604@spearce.org>
In-Reply-To
<alpine.DEB.1.00.0904261208000.10279@pacific.mpi-cbg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
Show 10 quoted lines
> On Sun, 26 Apr 2009, Christian Couder wrote:
> 
> > For information, now Google Code supports Mercurial [...]
> > 
> > Mercurial was choosen over Git because of this (one year old) analysis:
> > 
> > http://code.google.com/p/support/wiki/DVCSAnalysis
> 
> FWIW some little bird (yes, related to the Google Code team) told me that 
> the real reason was because [...]
There were certainly technical factors involved.

As the DVCSAnalysis document above describes, Hg's relatively efficient custom Hg-in-HTTP protocol performs about as well as git:// does, but requires only stateless HTTP, rather than a stateful direct TCP connection.

There is a fundemental reason why Google App Engine only supports incoming HTTP connections on 80/443. Its easy to stand up a new application behind the existing load balancers. Its quite a bit more effort to add support for yet-another-protocol.

As the recent discussion on eclipse.egit
  http://www.eclipse.org/newsportal/article.php?id=34&group=eclipse.egit#34

showed, many users are stuck behind corporate firewalls where only HTTP transit is available.

Tossing aside the Google server infrastructure and why HTTP might be preferred there, Google also tries to target the widest user base possible. Running your VCS through HTTP, which can be easily run through a corporate proxy, gives a wider user base than running your VCS through an SSH tunnel, or a relatively new IANA assigned port.

A long-time GCC committer, and an old SVN committer, pointed out to me the other day that the reason why SVN uses HTTP is so it can get around corporate firewalls without involving the IT staff. Because for the past 10 years, being "on the Internet" has meant being "behind an HTTP and SMTP proxy". And "tunneling through HTTP" is somehow safe, no matter how insecure the protocol might be; while opening an IANA assigned port causes the world to end.

IOW, if Git wants to expand into these user communities where the individual is stuck behind a corporate proxy that only permits HTTP "for security reasons" (but blindly winds up passing through whatever it gets), we need to support a more efficient HTTP protocol.

-- 
Shawn.
Previous: Miles BaderNext: Mark Lodato
Message 25 of 26 in “Google Code: Support for Mercurial and Analysis of Git and Mercurial”
  1. Christian CouderApr 26, 2009
  2. Michael WittenApr 26, 2009
  3. Jakub NarebskiApr 26, 2009
  4. Paolo CiarrocchiApr 26, 2009
  5. Johannes SchindelinApr 26, 2009
  6. Jakub NarebskiApr 26, 2009
  7. Johannes SchindelinApr 26, 2009
  8. Alex BlewittApr 26, 2009
  9. Shawn O. PearceApr 27, 2009
  10. Paolo CiarrocchiApr 26, 2009
  11. Matthias AndreeApr 26, 2009
  12. Jakub NarebskiApr 26, 2009
  13. Matthias AndreeApr 26, 2009
  14. Jakub NarebskiApr 26, 2009
  15. A Large Angry SCMApr 26, 2009
  16. Michael WittenApr 26, 2009
  17. Johannes SchindelinApr 26, 2009
  18. A Large Angry SCMApr 26, 2009
  19. Johannes SchindelinApr 26, 2009
  20. A Large Angry SCMApr 26, 2009
  21. James CloosApr 26, 2009
  22. Johannes SchindelinApr 26, 2009
  23. Michael WittenApr 26, 2009
  24. Miles BaderApr 26, 2009
  25. Shawn O. PearceApr 27, 2009
  26. Mark LodatoApr 30, 2009

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.