Re: Request for detailed documentation of git pack protocol
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Jun 5, 2009, 00:45 UTC
- Message-ID
- <20090605004540.GU3355@spearce.org>
- In-Reply-To
- <200906042255.43952.jnareb@gmail.com>
Jakub Narebski <jnareb@gmail.com> wrote:
Show 16 quoted lines
> > Here we were talking about the following part of exchange: > (I have added "C:" prefix to signal that this is what client, > git-clone here, sends; I have added also explicit "\n" to mark LF > characters terminating lines, and put each pkt-line on separate line) > > gb> C: 0054want 74730d410fcb6603ace96f1dc55ea6196122532d multi_ack side-band-64k ofs-delta\n > gb> C: 0032want 7d1665144a3a975c05f1f43902ddaf084e784dbe\n > gb> C: 0032want 5a3f6be755bbb7deae50065988cbfa1ffa9ab68a\n > gb> C: 0032want 7e47fe2bd8d01d481f44d7af0531bd93d3b21c01\n > gb> C: 0032want 74730d410fcb6603ace96f1dc55ea6196122532d\n > gb> C: 0000 > gb> C: 0009done\n > > and where server response is (again the quote from "Git Community Book" > was modified, removing here doublequotes and doubling of backslashes):
That should be fine.
Here's a dummy client that works against both jgit and C Git:
perl -e '
$h="fcfcfb1fd94829c1a1704f894fc111d14770d34e";
$c="multi_ack side-band-64k ofs-delta";
sub w{$_=shift;printf "%4.4x%s",4+length,$_;}
w("git-upload-pack /.git");
w("want $h $c\n");
printf "0000";
w("done")
' | nc localhost 9418Are you sure you are flushing the IO buffers in the dummy client?
-- Shawn.