From: Robin H. Johnson Date: Wed, 03 Jun 2009 02:18:40 GMT Subject: Re: Request for detailed documentation of git pack protocol Message-ID: <20090603021840.GE3042@orbis-terrarum.net> In-Reply-To: <200906030250.01413.jnareb@gmail.com> > >>> "0008NAK\n" > >> What does this server response mean? That served doesn't need more > >> info? > > It means the server is answering a prior flush from the client, > > and is saying "I still can't serve you, keep tell me more have". > Hmmm... the communication between server and client is not entirely > clean. Do I understand correctly that this NAK is response to clients > flush after all those "want" lines? And that "0009done" from client > tells server that it should send everything it has? Relatedly with the "done" message, I'm in the process of writing a hook that allows the server to deny the client at this point, instead of building and sending a pack. Suggestions on other modifications that might be needed to integrate. The hook: - takes all want/have lines as input (maybe capabilities too?) - returns 0/1 - on error, should also send a message to stderr, to be passed over the wire. My intended use is to block initial clones while still allowing updates (as long as you've got a tree at least commit X recent, I'll talk to you). Initial and too-old clients get a message to go and download a bundle instead. -- Robin Hugh Johnson Gentoo Linux Developer & Infra Guy E-Mail : robbat2@gentoo.org GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85