1 There are two Pack push-pull protocols.
3 upload-pack (S) | fetch/clone-pack (C) protocol:
5 # Tell the puller what commits we have and what their names are
9 S: # flush -- it's your turn
10 # Tell the pusher what commits we want, and what we have
17 C: # flush -- occasionally ask "had enough?"
24 S: XXXXXXX -- packfile contents.
26 send-pack | receive-pack protocol.
28 # Tell the pusher what commits we have and what their names are
32 C: # flush -- it's your turn
33 # Tell the puller what the pusher has
34 S: old-SHA1 new-SHA1 name
35 S: old-SHA1 new-SHA1 name
37 S: # flush -- done with the list
38 S: XXXXXXX --- packfile contents.