Shawn O. Pearce wrote:
So I think the cost may actually break even with a stateful protocol if we imagine that the server is actually a farm of systems and simple round-robin load-balancing is being done in front of the Git-aware server. I'd really like to keep the protocol stateless on the server side, as this makes it easier to embed into certain commerical server farms.
Indeed. It was a question, not a statement of any sort. I was curious about the answer.
I really like the new draft, with the one consideration below.
HTTP Transport -------------- All requests are encoded as HTTP POST requests to the smart service URL, "$url/backend.git-http/$service". All responses are encoded as 200 Ok responses, even if the server side has "failed" the request. Service specific success/failure codes are embedded in the content.
I still would like to have an indirection step at the start, in order to keep a single client on a server in the case of skew. I suggest simply do it as HTTP POST $url/backend.git-http, empty body, and return a URL prefix to use for the remainder of the session. That way a server who wants a stateful setup can return a URL which contains a session cookie; others can return a URL containing a target server, and finally others can simply return the requesting URL.
-hpa -- 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