Junio C Hamano <gitster <at> pobox.com> writes: > "The same event which was already described in that document" meaning at > the beginning of "Packfile Negotiation" section? That is primarily about > the "ls-remote" that probed the server for the list of current refs, which > is received in connect.c::get_remote_heads(), but it also covers another > case. When fetching, after connect.c::get_remote_heads() finds the list of > current refs, do_fetch_pack() is called, and then everything_local() in it > checks if we have all the objects we are going to ask. If so, we flush and > jump to all_done to terminate the connection, skipping find_common(), > without doing any of the want/shallow/depth/etc. > > I don't seem to be able to find where in find_common() and its callee we > could quit without telling the server anything (unless we crash . Even > if get_rev() loop finds nothing, we would at least say "done". > The part of the document I'm referring to starts at line 221 and reads: Once all the "want"s (and optional 'deepen') are transferred, clients MUST send a flush-pkt. If the client has all the references on the server, client flushes and disconnects. And I believe this refers to the code path beginning at line 308 of fetch-pack.c: if (!fetching) { strbuf_release(&req_buf); packet_flush(fd[1]); return 1; } Am I wrong? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html