# [PATCH] Document two pack push-pull protocols.

2 messages from 2005-07-14 to 2005-07-14. Participants: Junio C Hamano, Linus Torvalds.
Thread: https://gitlist.dev/t/1223

## Junio C Hamano, 2005-07-14 03:21

Subject: [PATCH] Document two pack push-pull protocols.
Message-ID: <7v64vem5rh.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v64vem5rh.fsf%40assigned-by-dhcp.cox.net

```
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>
---

There currently are these two pack push-pull protocols used for
different purposes.  Maybe you invented another today?  I have
not looked beyond your log message.

 Documentation/pack-protocol.txt |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/pack-protocol.txt

3a74ad8bd10e958ddbd4d432ad3140abc5464229
diff --git a/Documentation/pack-protocol.txt b/Documentation/pack-protocol.txt
new file mode 100644
--- /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.

```

## Linus Torvalds, 2005-07-14 03:34

Subject: Re: [PATCH] Document two pack push-pull protocols.
Message-ID: <Pine.LNX.4.58.0507132032460.19183@g5.osdl.org>
URL: https://gitlist.dev/e/Pine.LNX.4.58.0507132032460.19183%40g5.osdl.org
In-Reply-To: <7v64vem5rh.fsf@assigned-by-dhcp.cox.net>

```


On Wed, 13 Jul 2005, Junio C Hamano wrote:
> 
> There currently are these two pack push-pull protocols used for
> different purposes.  Maybe you invented another today?  I have
> not looked beyond your log message.

No, it's the upload-pack one.

The send-pack protocol is just for writing new stuff, not appropriate for
an anonymous connection with no authentication.

		Linus

```
