aboutsummaryrefslogtreecommitdiff
path: root/Documentation/pack-protocol.txt
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-07-13 20:21:54 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-13 20:42:26 -0700
commit9b011b2fe5379f76c53f20b964d7a3cecb9d8c79 (patch)
tree5ccf27ba1c526389f1ba8ac7473298f635163bfd /Documentation/pack-protocol.txt
parent5ccdf4cef212183597a0893c23c91da2ded80694 (diff)
downloadgit-9b011b2fe5379f76c53f20b964d7a3cecb9d8c79.tar.gz
git-9b011b2fe5379f76c53f20b964d7a3cecb9d8c79.tar.xz
[PATCH] Document two pack push-pull protocols.
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>
Diffstat (limited to 'Documentation/pack-protocol.txt')
-rw-r--r--Documentation/pack-protocol.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/Documentation/pack-protocol.txt b/Documentation/pack-protocol.txt
new file mode 100644
index 000000000..7d6aec409
--- /dev/null
+++ b/Documentation/pack-protocol.txt
@@ -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.