git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Document the underlying protocol used by shallow repositories and --depth commands.

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 7, 2011, 20:23 UTC
Message-ID
<7v1uz55r24.fsf@alter.siamese.dyndns.org>
In-Reply-To
<loom.20110606T213817-376@post.gmane.org>
Alex Neronskiy <zakmagnus@google.com> writes:
Show 14 quoted lines
> Junio C Hamano <gitster <at> pobox.com> writes:
>
>> > +Once all the 'want's and 'shallow's (and optional 'deepen') are
>> > +transferred, clients MUST send a flush-pkt. If the client has all
>> > +the references on the server, and as much of their commit history
>> > +as it is interested in, client flushes and disconnects.
>> 
>> Hmmmmm, are you describing "everything-local then flush and all-done" in
>> do_fetch_pack() with the second sentence? If so, placing the description
>> here is misleading. In that case, I do not think any of the find-common
>> exchange starting from the "upload-request" phase happens.
>
> No, this refers to the same event which was already described in that document,
> which I believe happens from inside find_common.

"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".

Previous: Alex NeronskiyNext: Alex Neronskiy
Message 4 of 8 in “Document the underlying protocol used by shallow repositories and --depth commands.”
  1. Document the underlying protocol used by shallow repositories and --depth commands.Alexander Neronskiy, Jun 6, 2011
  2. Junio C HamanoJun 6, 2011
  3. Alex NeronskiyJun 6, 2011
  4. Junio C HamanoJun 7, 2011
  5. Alex NeronskiyJun 7, 2011
  6. Junio C HamanoJun 7, 2011
  7. Alex NeronskiyJun 7, 2011
  8. Junio C HamanoJun 7, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.