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

Re: [PATCH 00/17] Clean up how fetch_pack() handles the heads list

From
Philip Oakley <philipoakley@iee.org>
Date
Aug 23, 2012, 19:13 UTC
Message-ID
<49DEA56853C64B9B900D3C7F886D4FA6@PhilipOakley>
In-Reply-To
<20120823092624.GG6963@sigill.intra.peff.net>
From: "Jeff King" <peff@peff.net>
Sent: Thursday, August 23, 2012 10:26 AM
Show 17 quoted lines
> On Thu, Aug 23, 2012 at 10:10:25AM +0200, mhagger@alum.mit.edu wrote:
>
>> There were various confusing things (and a couple of bugs) in the way
>> that fetch_pack() handled the list (nr_heads, heads) of references to
>> be sought from the remote:
>
> Aside from the minor comments I made to individual patches, this all
> looks good. As usual, thanks for breaking it down; I wish all series
> were as easy to review as this.
>
>> I'm still suspicious about the logic related to args.fetch_all and
>> args.depth, but I don't think I've made anything worse.
>
> I think the point of that is that when doing "git fetch-pack --all
> --depth=1", the meaning of "--all" is changed from "all refs" to
> "everything but tags".
>
There is a comment in \git\Documentation\technical\shallow.txt that
"- If you deepen a history, you'd want to get the tags of the
  newly stored (but older!) commits. This does not work right now."
which may be the source of this restriction. That is, how is the depth
of the tag fetching to be restricted to the requested depth count?
[assuming I've undestood the problem correctly]

It may be (?) that it is a good time to think about a 'datedepth' capability to bypass the current counted-depth shallow fetch that can cause so much trouble. With a date limited depth the relevant tags could also be fetched.

Show 17 quoted lines
> Which I kind of see the point of, because you don't want to grab 
> ancient
> tags that will be expensive. But wouldn't it make more sense to limit 
> it
> only to the contents of refs/heads in that case? Surely you wouldn't
> want refs/notes, refs/remotes, or other hierarchies.
>
> I suspect this code is never even run at all these days. All of the
> callers inside git should actually provide a real list of refs, not
> "--all". So it is really historical cruft for anybody who calls the
> fetch-pack plumbing (I wonder if any third-party callers even exist;
> this is such a deep part of the network infrastructure that any sane
> scripts would probably just be calling fetch).
>
> -Peff
> --
> 
Previous: Jeff KingNext: Jeff King
Message 33 of 40 in “Clean up how fetch_pack() handles the heads list”
  1. 00/17 Clean up how fetch_pack() handles the heads listmhagger@alum.mit.edu, Aug 23, 2012
  2. 01/17 t5500: add tests of error output for missing refsmhagger@alum.mit.edu, Aug 23, 2012
  3. 02/17 Rename static function fetch_pack() to http_fetch_pack()mhagger@alum.mit.edu, Aug 23, 2012
  4. 03/17 Fix formatting.mhagger@alum.mit.edu, Aug 23, 2012
  5. 04/17 Name local variables more consistentlymhagger@alum.mit.edu, Aug 23, 2012
  6. Jeff KingAug 23, 2012
  7. Michael HaggertyAug 24, 2012
  8. Junio C HamanoAug 26, 2012
  9. Michael HaggertyAug 27, 2012
  10. Jeff KingAug 27, 2012
  11. Junio C HamanoAug 27, 2012
  12. Junio C HamanoAug 27, 2012
  13. 05/17 Do not check the same match_pos twicemhagger@alum.mit.edu, Aug 23, 2012
  14. Jeff KingAug 23, 2012
  15. 06/17 Let fetch_pack() inform caller about number of unique headsmhagger@alum.mit.edu, Aug 23, 2012
  16. Jeff KingAug 23, 2012
  17. Michael HaggertyAug 25, 2012
  18. 07/17 Pass nr_heads to do_pack_ref() by referencemhagger@alum.mit.edu, Aug 23, 2012
  19. 08/17 Pass nr_heads to everything_local() by referencemhagger@alum.mit.edu, Aug 23, 2012
  20. 09/17 Pass nr_heads to filter_refs() by referencemhagger@alum.mit.edu, Aug 23, 2012
  21. 10/17 Remove ineffective optimizationmhagger@alum.mit.edu, Aug 23, 2012
  22. 11/17 filter_refs(): do not leave gaps in return_refsmhagger@alum.mit.edu, Aug 23, 2012
  23. 12/17 filter_refs(): compress unmatched refs in heads arraymhagger@alum.mit.edu, Aug 23, 2012
  24. 13/17 cmd_fetch_pack: return early if finish_connect() returns an errormhagger@alum.mit.edu, Aug 23, 2012
  25. 14/17 Report missing refs even if no existing refs were receivedmhagger@alum.mit.edu, Aug 23, 2012
  26. 15/17 cmd_fetch_pack(): simplify computation of return valuemhagger@alum.mit.edu, Aug 23, 2012
  27. 16/17 fetch_pack(): free matching headsmhagger@alum.mit.edu, Aug 23, 2012
  28. Jeff KingAug 23, 2012
  29. 17/17 fetch_refs(): simplify logicmhagger@alum.mit.edu, Aug 23, 2012
  30. Jeff KingAug 23, 2012
  31. Michael HaggertyAug 25, 2012
  32. Jeff KingAug 23, 2012
  33. Philip OakleyAug 23, 2012
  34. Jeff KingAug 23, 2012
  35. Jeff KingAug 23, 2012
  36. Michael HaggertyAug 25, 2012
  37. Michael HaggertySep 2, 2012
  38. Philip OakleyAug 23, 2012
  39. Junio C HamanoAug 24, 2012
  40. Philip OakleyAug 24, 2012

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.