Browse Source
This documents the two pack push-pull protocols used by the smart upload-fetch/clone and send/receive commands. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>maint


1 changed files with 38 additions and 0 deletions
@ -0,0 +1,38 @@ |
|||||||
|
There are two Pack push-pull protocols. |
||||||
|
|
||||||
|
upload-pack (S) | fetch/clone-pack (C) protocol: |
||||||
|
|
||||||
|
# Tell the puller what commits we have and what their names are |
||||||
|
S: SHA1 name |
||||||
|
S: ... |
||||||
|
S: SHA1 name |
||||||
|
S: # flush -- it's your turn |
||||||
|
# Tell the pusher what commits we want, and what we have |
||||||
|
C: want name |
||||||
|
C: .. |
||||||
|
C: want name |
||||||
|
C: have SHA1 |
||||||
|
C: have SHA1 |
||||||
|
C: ... |
||||||
|
C: # flush -- occasionally ask "had enough?" |
||||||
|
S: NAK |
||||||
|
C: have SHA1 |
||||||
|
C: ... |
||||||
|
C: have SHA1 |
||||||
|
S: ACK |
||||||
|
C: done |
||||||
|
S: XXXXXXX -- packfile contents. |
||||||
|
|
||||||
|
send-pack | receive-pack protocol. |
||||||
|
|
||||||
|
# Tell the pusher what commits we have and what their names are |
||||||
|
C: SHA1 name |
||||||
|
C: ... |
||||||
|
C: SHA1 name |
||||||
|
C: # flush -- it's your turn |
||||||
|
# Tell the puller what the pusher has |
||||||
|
S: old-SHA1 new-SHA1 name |
||||||
|
S: old-SHA1 new-SHA1 name |
||||||
|
S: ... |
||||||
|
S: # flush -- done with the list |
||||||
|
S: XXXXXXX --- packfile contents. |
Loading…
Reference in new issue