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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Rogan Dawes <lists@xxxxxxxxxxxx> wrote:
> Shawn O. Pearce wrote:
>>
>> 	Smart Server Detection
>> 	----------------------
>>
>> 	To detect a smart (Git-aware) server a client sends an
>> 	empty POST request to info/refs; [...]
>>
>> 		C: POST /repository.git/info/refs HTTP/1.0
>> 		C: Content-Length: 0
>
> I don't understand why you would want to keep the commands in the URL  
> when you are doing a POST?

Well, as Dscho pointed out this partly has to do with caching and
the transparent dumb server functionality.  By using the command in
the URL, and having the command match that of the dumb server file,
its easier to emulate a dumb server and also to permit caching.

Currently git-http-backend requests no caching for info/refs, but
I could see us tweaking that to permit several minutes of caching,
especially on big public sites like kernel.org.  Having info/refs
report stale by 5 minutes is not an issue when writes to there
already have a lag due to the master-slave mirroring system in use.

Because git-http-backend emulates a dumb server there is a command
dispatch table based upon the URL submitted.  Thus we already have
the command dispatch behavior implemented in the URL and doing it
in the POST body would only complicate the code further.

> Also, if everything is done via POST, you don't have to worry about a  
> wget-cloned server appearing to be "smart", since no "smarts" will ever  
> be returned in response to a GET request (and to the best of my  
> knowledge, wget can't mirror using POST).

I think we fixed the wget-cloned server issue by requesting
that clients use POST /info/refs to identify a smart server.
A wget-cloned repository will fail on this, and the client can
fallback to GET /info/refs and assume it must use the object
walker to fetch (or WebDAV to push).  A smart server would
respond to the POST /info/refs request correctly and the
client would know its smart.

-- 
Shawn.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux