git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] multi_ack protocol v2
@ 2005-10-27  0:16 Johannes Schindelin
  2005-10-27  7:13 ` Junio C Hamano
  2005-10-27  9:11 ` Paul Mackerras
  0 siblings, 2 replies; 10+ messages in thread
From: Johannes Schindelin @ 2005-10-27  0:16 UTC (permalink / raw)
  To: git

Hi,

the fetch-pack/upload-pack protocol as of now goes like this:

- server sends the refs it has, then an empty packet
- client sends what it wants, then an empty packet
- client sends a rev-list via "have" lines in the hope to find a common
  rev. Interspersed, it sends empty packets.
- server answers to those empty packets with a NAK message, until it
  receives a "have" line for a commit it has (and which is therefore a
  common commit). This is answered by an ACK message, and no NAK or ACK is 
  sent after that
- client sends "done"
- server only responds if no common commit was found, with a NAK
- server sends pack

after thinking about my earlier approach, I think there's a better, less 
intrusive, and all in all just simpler approach:

- client asks for multi_ack protocol by sending " multi_ack" at the end
  of at least one "want" line
- server appends " continue" to the ACK message, but continues sending
  ACK (but not NAK) messages
- after receiving "done", server repeats last ACK message without 
  " continue" appended

After much fun with non-working, fragile code which had to be retracted 
from master, I hope that this approach is less prone to errors.

Note that this is incompatible to the multi_ack protocol I described 
earlier, but given that my patches were buggy anyway, I'd say it does not 
matter at all.

Thoughts, comments, objections?

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2005-10-27 19:15 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-27  0:16 [RFC] multi_ack protocol v2 Johannes Schindelin
2005-10-27  7:13 ` Junio C Hamano
2005-10-27  9:37   ` Johannes Schindelin
2005-10-27 10:16   ` Sergey Vlasov
2005-10-27 10:47     ` Johannes Schindelin
2005-10-27 17:45       ` Junio C Hamano
2005-10-27 18:04         ` Johannes Schindelin
2005-10-27 19:15           ` Junio C Hamano
2005-10-27  9:11 ` Paul Mackerras
2005-10-27 10:54   ` Johannes Schindelin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).