mirror of
https://github.com/git/git.git
synced 2024-11-17 06:25:13 +01:00
39 lines
830 B
Text
39 lines
830 B
Text
|
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.
|