The MUST and the following 'If' scenario may seem contradictory at first glance; swap their order to alleviate this. Also mention that the response should specifically be for the requested service, for clarity's sake. Based on: From: Junio C Hamano <gitster@xxxxxxxxx> Message-ID: <7vskdss3ei.fsf@xxxxxxxxxxxxxxxxxxxxxxxx> > +Smart Server Response > +^^^^^^^^^^^^^^^^^^^^^ > + > +Smart servers MUST respond with the smart server reply format. > +If the server does not recognize the requested service name, or the > +requested service name has been disabled by the server administrator, > +the server MUST respond with the '403 Forbidden' HTTP status code. This is a bit confusing. If you as a server administrator want to disable the smart upload-pack for one repository (but not for other repositories), you would not be able to force smart clients to fall back to the dumb protocol by giving "403" for that repository. Maybe in 2 years somebody smarter than us will have invented a more efficient git-upload-pack-2 service, which is the only fetch protocol his server supports other than dumb. If your v1 smart client asks for the original git-upload-pack service and gets a "403", you won't be able to fall back to "dumb". The solution for such cases likely is to pretend as if you are a dumb server for the smart request. That unfortunately means that the first sentence is misleading, and the second sentence is also an inappropriate advice. Signed-off-by: Tay Ray Chuan <rctay89@xxxxxxxxx> --- Documentation/technical/http-protocol.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/technical/http-protocol.txt b/Documentation/technical/http-protocol.txt index 4bb1614..63a089a 100644 --- a/Documentation/technical/http-protocol.txt +++ b/Documentation/technical/http-protocol.txt @@ -234,12 +234,13 @@ description of the dumb server response. Smart Server Response ^^^^^^^^^^^^^^^^^^^^^ -Smart servers MUST respond with the smart server reply format. - If the server does not recognize the requested service name, or the requested service name has been disabled by the server administrator, the server MUST respond with the '403 Forbidden' HTTP status code. +Otherwise, smart servers MUST respond with the smart server reply +format for the requested service name. + Cache-Control headers SHOULD be used to disable caching of the returned entity. -- 1.8.4.rc4.527.g303b16c -- 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