41 lines
879 B
41 lines
879 B
Pack transfer protocols |
|
======================= |
|
|
|
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.
|
|
|