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

[PATCH 02/14] normalize indentation with protcol-common.txt

From
Tay Ray Chuan <rctay89@gmail.com>
Date
Sep 10, 2013, 17:07 UTC
Message-ID
<1378832878-12811-3-git-send-email-rctay89@gmail.com>
In-Reply-To
<1378832878-12811-2-git-send-email-rctay89@gmail.com>
Indent client/server query examples with 3 spaces.
Indent ABNF rules with 2 spaces.
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
--
This is in its own patch to minimize noise in diffs.
---
 Documentation/technical/http-protocol.txt | 226 +++++++++++++++---------------
 1 file changed, 113 insertions(+), 113 deletions(-)
diff --git a/Documentation/technical/http-protocol.txt b/Documentation/technical/http-protocol.txt
index 0a2a53d..70a1648 100644
--- a/Documentation/technical/http-protocol.txt
+++ b/Documentation/technical/http-protocol.txt
@@ -161,14 +161,14 @@ Dumb HTTP clients MUST NOT include search/query parameters when
 fetching the info/refs file.  (That is, '?' must not appear in the
 requested URL.)
 
-	C: GET $GIT_URL/info/refs HTTP/1.0
+   C: GET $GIT_URL/info/refs HTTP/1.0
 
-	S: 200 OK
-	S:
-	S: 95dcfa3633004da0049d3d0fa03f80589cbcaf31	refs/heads/maint
-	S: d049f6c27a2244e12041955e262a404c7faba355	refs/heads/master
-	S: 2cb58b79488a98d2721cea644875a8dd0026b115	refs/tags/v1.0
-	S: a3c2e2402b99163d1d59756e5f207ae21cccba4c	refs/tags/v1.0^{}
+   S: 200 OK
+   S:
+   S: 95dcfa3633004da0049d3d0fa03f80589cbcaf31	refs/heads/maint
+   S: d049f6c27a2244e12041955e262a404c7faba355	refs/heads/master
+   S: 2cb58b79488a98d2721cea644875a8dd0026b115	refs/tags/v1.0
+   S: a3c2e2402b99163d1d59756e5f207ae21cccba4c	refs/tags/v1.0^{}
 
 The Content-Type of the returned info/refs entity SHOULD be
 "text/plain; charset=utf-8", but MAY be any content type.
@@ -187,17 +187,17 @@ each ref and its known value.  The file SHOULD be sorted by name
 according to the C locale ordering.  The file SHOULD NOT include
 the default ref named 'HEAD'.
 
-	info_refs     = *( ref_record )
-	ref_record    = any_ref | peeled_ref
+  info_refs        =  *( ref_record )
+  ref_record       =  any_ref | peeled_ref
 
-	any_ref       = id HT name LF
-	peeled_ref    = id HT name LF
-	                id HT name "^{}" LF
-	id            = 40*HEX
+  any_ref          =  id HT name LF
+  peeled_ref       =  id HT name LF
+		      id HT name "^{}" LF
+  id               =  40*HEX
 
-	HEX           = "0".."9" | "a".."f"
-	LF            = <US-ASCII LF, linefeed (10)>
-	HT            = <US-ASCII HT, horizontal-tab (9)>
+  HEX              =  "0".."9" | "a".."f"
+  LF               =  <US-ASCII LF, linefeed (10)>
+  HT               =  <US-ASCII HT, horizontal-tab (9)>
 
 Smart Clients
 ~~~~~~~~~~~~~
@@ -211,26 +211,26 @@ The request MUST contain exactly one query parameter,
 name the client wishes to contact to complete the operation.
 The request MUST NOT contain additional query parameters.
 
-	C: GET $GIT_URL/info/refs?service=git-upload-pack HTTP/1.0
-
-	dumb server reply:
-	S: 200 OK
-	S:
-	S: 95dcfa3633004da0049d3d0fa03f80589cbcaf31	refs/heads/maint
-	S: d049f6c27a2244e12041955e262a404c7faba355	refs/heads/master
-	S: 2cb58b79488a98d2721cea644875a8dd0026b115	refs/tags/v1.0
-	S: a3c2e2402b99163d1d59756e5f207ae21cccba4c	refs/tags/v1.0^{}
-
-	smart server reply:
-	S: 200 OK
-	S: Content-Type: application/x-git-upload-pack-advertisement
-	S: Cache-Control: no-cache
-	S:
-	S: ....# service=git-upload-pack
-	S: ....95dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint\0 multi_ack
-	S: ....d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master
-	S: ....2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1.0
-	S: ....a3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{}
+   C: GET $GIT_URL/info/refs?service=git-upload-pack HTTP/1.0
+
+   dumb server reply:
+   S: 200 OK
+   S:
+   S: 95dcfa3633004da0049d3d0fa03f80589cbcaf31	refs/heads/maint
+   S: d049f6c27a2244e12041955e262a404c7faba355	refs/heads/master
+   S: 2cb58b79488a98d2721cea644875a8dd0026b115	refs/tags/v1.0
+   S: a3c2e2402b99163d1d59756e5f207ae21cccba4c	refs/tags/v1.0^{}
+
+   smart server reply:
+   S: 200 OK
+   S: Content-Type: application/x-git-upload-pack-advertisement
+   S: Cache-Control: no-cache
+   S:
+   S: ....# service=git-upload-pack
+   S: ....95dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint\0 multi_ack
+   S: ....d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master
+   S: ....2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1.0
+   S: ....a3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{}
 
 Dumb Server Response
 ^^^^^^^^^^^^^^^^^^^^
@@ -281,28 +281,28 @@ the C locale ordering.  The stream SHOULD include the default ref
 named 'HEAD' as the first ref.  The stream MUST include capability
 declarations behind a NUL on the first ref.
 
-	smart_reply    = PKT-LINE("# service=$servicename" LF)
-	                 ref_list
-	                 "0000"
-	ref_list       = empty_list | non_empty_list
+  smart_reply      =  PKT-LINE("# service=$servicename" LF)
+		      ref_list
+		      "0000"
+  ref_list         =  empty_list | non_empty_list
 
-	empty_list     = PKT-LINE(id SP "capabilities^{}" NUL cap_list LF)
+  empty_list       =  PKT-LINE(id SP "capabilities^{}" NUL cap_list LF)
 
-	non_empty_list = PKT-LINE(id SP name NUL cap_list LF)
-	                 *ref_record
+  non_empty_list   =  PKT-LINE(id SP name NUL cap_list LF)
+		      *ref_record
 
-	cap_list      = *(SP capability) SP
-	ref_record    = any_ref | peeled_ref
+  cap_list         =  *(SP capability) SP
+  ref_record       =  any_ref | peeled_ref
 
-	any_ref       = PKT-LINE(id SP name LF)
-	peeled_ref    = PKT-LINE(id SP name LF)
-	                PKT-LINE(id SP name "^{}" LF
-	id            = 40*HEX
+  any_ref          =  PKT-LINE(id SP name LF)
+  peeled_ref       =  PKT-LINE(id SP name LF)
+		      PKT-LINE(id SP name "^{}" LF
+  id               =  40*HEX
 
-	HEX           = "0".."9" | "a".."f"
-	NL            = <US-ASCII NUL, null (0)>
-	LF            = <US-ASCII LF,  linefeed (10)>
-	SP            = <US-ASCII SP,  horizontal-tab (9)>
+  HEX              =  "0".."9" | "a".."f"
+  NL               =  <US-ASCII NUL, null (0)>
+  LF               =  <US-ASCII LF,  linefeed (10)>
+  SP               =  <US-ASCII SP,  horizontal-tab (9)>
 
 
 Smart Service git-upload-pack
@@ -312,19 +312,19 @@ This service reads from the remote repository.
 Clients MUST first perform ref discovery with
 '$GIT_URL/info/refs?service=git-upload-pack'.
 
-	C: POST $GIT_URL/git-upload-pack HTTP/1.0
-	C: Content-Type: application/x-git-upload-pack-request
-	C:
-	C: ....want 0a53e9ddeaddad63ad106860237bbf53411d11a7
-	C: ....have 441b40d833fdfa93eb2908e52742248faf0ee993
-	C: 0000
+   C: POST $GIT_URL/git-upload-pack HTTP/1.0
+   C: Content-Type: application/x-git-upload-pack-request
+   C:
+   C: ....want 0a53e9ddeaddad63ad106860237bbf53411d11a7
+   C: ....have 441b40d833fdfa93eb2908e52742248faf0ee993
+   C: 0000
 
-	S: 200 OK
-	S: Content-Type: application/x-git-upload-pack-result
-	S: Cache-Control: no-cache
-	S:
-	S: ....ACK %s, continue
-	S: ....NAK
+   S: 200 OK
+   S: Content-Type: application/x-git-upload-pack-result
+   S: Cache-Control: no-cache
+   S:
+   S: ....ACK %s, continue
+   S: ....NAK
 
 Clients MUST NOT reuse or revalidate a cached reponse.
 Servers MUST include sufficient Cache-Control headers
@@ -336,23 +336,23 @@ Clients MUST send at least one 'want' command in the request body.
 Clients MUST NOT reference an id in a 'want' command which did not
 appear in the response obtained through ref discovery.
 
-	compute_request   = want_list
-	                    have_list
-	                    request_end
-	request_end       = "0000" | "done"
+  compute_request  =  want_list
+		      have_list
+		      request_end
+  request_end      =  "0000" | "done"
 
-	want_list         = PKT-LINE(want NUL cap_list LF)
-	                    *(want_pkt)
-	want_pkt          = PKT-LINE(want LF)
-	want              = "want" SP id
-	cap_list          = *(SP capability) SP
+  want_list        =  PKT-LINE(want NUL cap_list LF)
+		      *(want_pkt)
+  want_pkt         =  PKT-LINE(want LF)
+  want             =  "want" SP id
+  cap_list         =  *(SP capability) SP
 
-	have_list         = *PKT-LINE("have" SP id LF)
+  have_list        =  *PKT-LINE("have" SP id LF)
 
-	command           = create | delete | update
-	create            = 40*"0" SP new_id SP name
-	delete            = old_id SP 40*"0" SP name
-	update            = old_id SP new_id SP name
+  command          =  create | delete | update
+  create           =  40*"0" SP new_id SP name
+  delete           =  old_id SP 40*"0" SP name
+  update           =  old_id SP new_id SP name
 
 TODO: Document this further.
 TODO: Don't use uppercase for variable names below.
@@ -396,16 +396,16 @@ The computation to select the minimal pack proceeds as follows
  one compute step:
  (c) Send one $GIT_URL/git-upload-pack request:
 
-	C: 0032want <WANT #1>...............................
-	C: 0032want <WANT #2>...............................
-	....
-	C: 0032have <COMMON #1>.............................
-	C: 0032have <COMMON #2>.............................
-	....
-	C: 0032have <HAVE #1>...............................
-	C: 0032have <HAVE #2>...............................
-	....
-	C: 0000
+   C: 0032want <WANT #1>...............................
+   C: 0032want <WANT #2>...............................
+   ....
+   C: 0032have <COMMON #1>.............................
+   C: 0032have <COMMON #2>.............................
+   ....
+   C: 0032have <HAVE #1>...............................
+   C: 0032have <HAVE #2>...............................
+   ....
+   C: 0000
 
      The stream is organized into "commands", with each command
      appearing by itself in a pkt-line.  Within a command line
@@ -434,13 +434,13 @@ The computation to select the minimal pack proceeds as follows
      emptied C_PENDING it should include a "done" command to let
      the server know it won't proceed:
 
-	C: 0009done
+   C: 0009done
 
   (s) Parse the git-upload-pack request:
 
       Verify all objects in WANT are directly reachable from refs.
 
-	  The server MAY walk backwards through history or through
+      The server MAY walk backwards through history or through
       the reflog to permit slightly stale requests.
 
       If no WANT objects are received, send an error:
@@ -466,7 +466,7 @@ TODO: Define error if an invalid want is requested.
      request ends with "done", it replies with the pack.
 
 TODO: Document the pack based response
-	S: PACK...
+   S: PACK...
 
      The returned stream is the side-band-64k protocol supported
      by the git-upload-pack service, and the pack is embedded into
@@ -495,18 +495,18 @@ This service modifies the remote repository.
 Clients MUST first perform ref discovery with
 '$GIT_URL/info/refs?service=git-receive-pack'.
 
-	C: POST $GIT_URL/git-receive-pack HTTP/1.0
-	C: Content-Type: application/x-git-receive-pack-request
-	C:
-	C: ....0a53e9ddeaddad63ad106860237bbf53411d11a7 441b40d833fdfa93eb2908e52742248faf0ee993 refs/heads/maint\0 report-status
-	C: 0000
-	C: PACK....
+   C: POST $GIT_URL/git-receive-pack HTTP/1.0
+   C: Content-Type: application/x-git-receive-pack-request
+   C:
+   C: ....0a53e9ddeaddad63ad106860237bbf53411d11a7 441b40d833fdfa93eb2908e52742248faf0ee993 refs/heads/maint\0 report-status
+   C: 0000
+   C: PACK....
 
-	S: 200 OK
-	S: Content-Type: application/x-git-receive-pack-result
-	S: Cache-Control: no-cache
-	S:
-	S: ....
+   S: 200 OK
+   S: Content-Type: application/x-git-receive-pack-result
+   S: Cache-Control: no-cache
+   S:
+   S: ....
 
 Clients MUST NOT reuse or revalidate a cached reponse.
 Servers MUST include sufficient Cache-Control headers
@@ -518,18 +518,18 @@ Clients MUST send at least one command in the request body.
 Within the command portion of the request body clients SHOULD send
 the id obtained through ref discovery as old_id.
 
-	update_request    = command_list
-	                    "PACK" <binary data>
+  update_request   =  command_list
+		      "PACK" <binary data>
 
-	command_list      = PKT-LINE(command NUL cap_list LF)
-	                    *(command_pkt)
-	command_pkt       = PKT-LINE(command LF)
-	cap_list          = *(SP capability) SP
+  command_list     =  PKT-LINE(command NUL cap_list LF)
+		      *(command_pkt)
+  command_pkt      =  PKT-LINE(command LF)
+  cap_list         =  *(SP capability) SP
 
-	command           = create | delete | update
-	create            = 40*"0" SP new_id SP name
-	delete            = old_id SP 40*"0" SP name
-	update            = old_id SP new_id SP name
+  command          =  create | delete | update
+  create           =  40*"0" SP new_id SP name
+  delete           =  old_id SP 40*"0" SP name
+  update           =  old_id SP new_id SP name
 
 TODO: Document this further.
 
-- 
1.8.4.rc4.527.g303b16c
Previous: Tay Ray ChuanNext: Tay Ray Chuan
Message 32 of 46 in “Return of smart HTTP”
  1. 0/4 Return of smart HTTPShawn O. Pearce, Oct 9, 2009
  2. 1/4 Document the HTTP transport protocolShawn O. Pearce, Oct 9, 2009
  3. 2/4 Git-aware CGI to provide dumb HTTP transportShawn O. Pearce, Oct 9, 2009
  4. 3/4 Add smart-http options to upload-pack, receive-packShawn O. Pearce, Oct 9, 2009
  5. 4/4 Smart fetch and push over HTTP: server sideShawn O. Pearce, Oct 9, 2009
  6. J.H.Oct 9, 2009
  7. Sverre RabbelierOct 9, 2009
  8. Sverre RabbelierOct 9, 2009
  9. Alex BlewittOct 9, 2009
  10. Shawn O. PearceOct 15, 2009
  11. Jakub NarebskiOct 9, 2009
  12. Jeff KingOct 9, 2009
  13. Shawn O. PearceOct 15, 2009
  14. Jeff KingOct 15, 2009
  15. Junio C HamanoOct 9, 2009
  16. Antti-Juhani KaijanahoOct 10, 2009
  17. H. Peter AnvinOct 16, 2009
  18. Mike HommeyOct 16, 2009
  19. Shawn O. PearceOct 16, 2009
  20. Antti-Juhani KaijanahoOct 16, 2009
  21. Tay Ray ChuanApr 7, 2010
  22. Tay Ray ChuanApr 7, 2010
  23. (resend v2) Re: [RFC PATCH 1/4] Document the HTTP transport protocolTay Ray Chuan, Apr 7, 2010
  24. Junio C HamanoApr 7, 2010
  25. Tay Ray ChuanApr 8, 2010
  26. (resend v2) Re: [RFC PATCH 1/4] Document the HTTP transport protocolTay Ray Chuan, Apr 7, 2010
  27. Tay Ray ChuanOct 10, 2009
  28. Scott ChaconApr 6, 2010
  29. Junio C HamanoApr 6, 2010
  30. 00/14 document edits to original http protocol documentationTay Ray Chuan, Sep 10, 2013
  31. 01/14 Document the HTTP transport protocolTay Ray Chuan, Sep 10, 2013
  32. 02/14 normalize indentation with protcol-common.txtTay Ray Chuan, Sep 10, 2013
  33. 03/14 capitalize key words according to RFC 2119Tay Ray Chuan, Sep 10, 2013
  34. 04/14 normalize rules with RFC 5234Tay Ray Chuan, Sep 10, 2013
  35. 05/14 drop rules, etc. common to the pack protocolTay Ray Chuan, Sep 10, 2013
  36. 06/14 reword behaviour on missing repository or objectsTay Ray Chuan, Sep 10, 2013
  37. 07/14 weaken specification over cookies for authenticationTay Ray Chuan, Sep 10, 2013
  38. 08/14 mention different variations around $GIT_URLTay Ray Chuan, Sep 10, 2013
  39. 09/14 reduce ambiguity over '?' in $GIT_URL for dumb clientsTay Ray Chuan, Sep 10, 2013
  40. 10/14 fix example request/responsesTay Ray Chuan, Sep 10, 2013
  41. 11/14 be clearer in place of 'remote repository' phraseTay Ray Chuan, Sep 10, 2013
  42. 12/14 reduce confusion over smart server response behaviourTay Ray Chuan, Sep 10, 2013
  43. 13/14 shift dumb server response detailsTay Ray Chuan, Sep 10, 2013
  44. 14/14 mention effect of "allow-tip-sha1-in-want" capability on git-upload-packTay Ray Chuan, Sep 10, 2013
  45. 1/4 Document the HTTP transport protocolScott Chacon, Apr 6, 2010
  46. Junio C HamanoApr 6, 2010

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.