On Fri, 23 Nov 2012 20:58:35 -0800 (PST)
kumar <t12...@gmail.com> wrote:

> does git smart http use gzip?

As far as I understand its inner workings, Git's smart HTTP transport
spawns `git upload-pack` on the server and `git receive-pack` on the
client, and then these programs communicate with each other in exactly
the same way they would do if they were run in an SSH session or if you
were using the git:// access protocol.

`git upload-pack` does compress of the loose objects (objects
not in "packs", which are already compressed) before transferring them.

Alternatively, as explained in the manual page [1], you can make your
webserver to statically serve certain files without even spawning the
Git's HTTP backend program, if needed.  If this is configured and used,
whether gzip compression is used depends on the server's *and* client's
configuration (the client tells the server whether it accepts
compressed encodings using a special field in its HTTP request, and
the server is free to consider it or to ignore it).  The client's
configuration belongs in the libcURL library Git uses for HTTP[S]
access, and I don't know whether it accepts gzip encoding or not.
You could easily see this yourself by sniffing the HTTP traffic when
doing `git fetch` using a tool like Wireshark or Microsoft Network
Monitor.

TL;DR.
Supposedly smart HTTP protocol offers the same fetch performance as
plain git:// protocol, it just has a little overhead of HTTP
negotiation (and authentication, if applies); even on a moderately-sized
repositories this overhead should be negligible.

1. http://www.kernel.org/pub/software/scm/git/docs/git-http-backend.html

-- 


Reply via email to