1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-06-09 12:56:12 +02:00

http-protocol.txt: don't use uppercase for variable names in "The Negotiation Algorithm"

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Thomas Ackermann 2014-01-26 13:56:17 +01:00 committed by Junio C Hamano
parent 43cc5ce9ea
commit 9c96c7f3aa

View File

@ -335,7 +335,6 @@ server advertises capability `allow-tip-sha1-in-want`.
have_list = *PKT-LINE("have" SP id LF)
TODO: Document this further.
TODO: Don't use uppercase for variable names below.
The Negotiation Algorithm
~~~~~~~~~~~~~~~~~~~~~~~~~
@ -346,15 +345,15 @@ The computation to select the minimal pack proceeds as follows
C: Use ref discovery to obtain the advertised refs.
C: Place any object seen into set ADVERTISED.
C: Place any object seen into set `advertised`.
C: Build an empty set, COMMON, to hold the objects that are later
C: Build an empty set, `common`, to hold the objects that are later
determined to be on both ends.
C: Build a set, WANT, of the objects from ADVERTISED the client
C: Build a set, `want`, of the objects from `advertised` the client
wants to fetch, based on what it saw during ref discovery.
C: Start a queue, C_PENDING, ordered by commit time (popping newest
C: Start a queue, `c_pending`, ordered by commit time (popping newest
first). Add all client refs. When a commit is popped from
the queue its parents SHOULD be automatically inserted back.
Commits MUST only enter the queue once.
@ -363,14 +362,14 @@ C: Start a queue, C_PENDING, ordered by commit time (popping newest
C: Send one `$GIT_URL/git-upload-pack` request:
C: 0032want <WANT #1>...............................
C: 0032want <WANT #2>...............................
C: 0032want <want #1>...............................
C: 0032want <want #2>...............................
....
C: 0032have <COMMON #1>.............................
C: 0032have <COMMON #2>.............................
C: 0032have <common #1>.............................
C: 0032have <common #2>.............................
....
C: 0032have <HAVE #1>...............................
C: 0032have <HAVE #2>...............................
C: 0032have <have #1>...............................
C: 0032have <have #2>...............................
....
C: 0000
@ -393,38 +392,38 @@ A single "want" or "have" command MUST have one hex formatted
SHA-1 as its value. Multiple SHA-1s MUST be sent by sending
multiple commands.
The HAVE list is created by popping the first 32 commits
from C_PENDING. Less can be supplied if C_PENDING empties.
The `have` list is created by popping the first 32 commits
from `c_pending`. Less can be supplied if `c_pending` empties.
If the client has sent 256 HAVE commits and has not yet
received one of those back from S_COMMON, or the client has
emptied C_PENDING it SHOULD include a "done" command to let
If the client has sent 256 "have" commits and has not yet
received one of those back from `s_common`, or the client has
emptied `c_pending` it SHOULD include a "done" command to let
the server know it won't proceed:
C: 0009done
S: Parse the git-upload-pack request:
Verify all objects in WANT are directly reachable from refs.
Verify all objects in `want` are directly reachable from refs.
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:
If no "want" objects are received, send an error:
TODO: Define error if no "want" lines are requested.
If any WANT object is not reachable, send an error:
If any "want" object is not reachable, send an error:
TODO: Define error if an invalid "want" is requested.
Create an empty list, S_COMMON.
Create an empty list, `s_common`.
If "have" was sent:
Loop through the objects in the order supplied by the client.
For each object, if the server has the object reachable from
a ref, add it to S_COMMON. If a commit is added to S_COMMON,
do not add any ancestors, even if they also appear in HAVE.
a ref, add it to `s_common`. If a commit is added to `s_common`,
do not add any ancestors, even if they also appear in `have`.
S: Send the git-upload-pack response:
@ -440,7 +439,7 @@ stream 1. Progress messages from the server side MAY appear
in stream 2.
Here a "closed set of objects" is defined to have at least
one path from every WANT to at least one COMMON object.
one path from every "want" to at least one "common" object.
If the server needs more information, it replies with a
status continue response: