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

Re: [PATCH 2/5] builtin/repo: collect largest inflated objects

From
Justin Tobler <jltobler@gmail.com>
Date
Feb 18, 2026, 20:01 UTC
Message-ID
<aZYV0o9Xp-v5IPL1@denethor>
In-Reply-To
<xmqqv7gdqwei.fsf@gitster.g>
On 26/02/03 02:45PM, Junio C Hamano wrote:
Show 12 quoted lines
> Justin Tobler <jltobler@gmail.com> writes:
> 
> > The "structure" output for git-repo(1) shows the total inflated and disk
> > sizes of reachable objects in the repository, but doesn't show the size
> > of the largest individual objects. Since an individual object may be a
> > large contributor to the overall repository size, it is useful for users
> > to know the maximum size of individual objects.
> 
> Hmph.  It is true that a byte is worth the same amount of money no
> matter what object it is used to represent, but comparing the size
> of a commit object and the size of a blob object feels inherently
> meaningless to me.

I certainly agree that comparing max size values between the types themselves is not particularly meaningfull. I do think though the max size values by themselves provide insight into the extremes of the repository.

Show 9 quoted lines
> It all depends on what you are trying to learn out of the stats, but
> having many small blob objects that add up to 1GB and having medium
> number of medium sized tree objects that adds up to the same 1GB
> would give the same number in object_stats.inflated_sizes for both
> types, indicating that they are costing you about the same.  But the
> members in largest_objects for these types would be different,
> hinting (incorrectly) that one type may be costing more than the
> other.  Would that really tell us something useful, I have to
> wonder?

Ya the largest objects and inflated sizes you can not really gain any insight regarding the distribution, but I think it still a good idea to showcase the extremes. If I see the max size values are "normal", that at least gives me some insight into the repository usage patterns.

Show 5 quoted lines
> One thing that is related to "largest" that might be useful is how
> spiky size distribution is.  Among many medium sized blobs, if there
> is only a handful of super huge blobs, that is quite a notable thing
> to know (as opposed to the case where these super huge blobs are
> not so unusual).

I agree that showing a distribution here would be quite useful. This is something I plan to explore in a followup series. :)

-Justin
Previous: Junio C HamanoNext: Justin Tobler
Message 9 of 50 in “builtin/repo: include largest object information”
  1. 0/5 builtin/repo: include largest object informationJustin Tobler, Feb 3, 2026
  2. 1/5 builtin/repo: update stats for each objectJustin Tobler, Feb 3, 2026
  3. Junio C HamanoFeb 3, 2026
  4. Justin ToblerFeb 18, 2026
  5. Junio C HamanoFeb 26, 2026
  6. Justin ToblerFeb 26, 2026
  7. 2/5 builtin/repo: collect largest inflated objectsJustin Tobler, Feb 3, 2026
  8. Junio C HamanoFeb 3, 2026
  9. Justin ToblerFeb 18, 2026
  10. 3/5 builtin/repo: add OID annotations to table outputJustin Tobler, Feb 3, 2026
  11. Patrick SteinhardtFeb 13, 2026
  12. Justin ToblerFeb 18, 2026
  13. 4/5 builtin/repo: find commit with most parentsJustin Tobler, Feb 3, 2026
  14. Junio C HamanoFeb 3, 2026
  15. Kristoffer HaugsbakkFeb 3, 2026
  16. Junio C HamanoFeb 3, 2026
  17. Justin ToblerFeb 18, 2026
  18. 5/5 builtin/repo: find tree with most entriesJustin Tobler, Feb 3, 2026
  19. Junio C HamanoFeb 3, 2026
  20. Patrick SteinhardtFeb 4, 2026
  21. Junio C HamanoFeb 4, 2026
  22. 0/5 builtin/repo: include largest object informationJustin Tobler, Feb 23, 2026
  23. 1/5 builtin/repo: update stats for each objectJustin Tobler, Feb 23, 2026
  24. 2/5 builtin/repo: collect largest inflated objectsJustin Tobler, Feb 23, 2026
  25. Junio C HamanoFeb 26, 2026
  26. Justin ToblerMar 2, 2026
  27. Lucas Seiki OshiroFeb 28, 2026
  28. Justin ToblerMar 2, 2026
  29. 3/5 builtin/repo: add OID annotations to table outputJustin Tobler, Feb 23, 2026
  30. Junio C HamanoFeb 26, 2026
  31. Justin ToblerMar 2, 2026
  32. 4/5 builtin/repo: find commit with most parentsJustin Tobler, Feb 23, 2026
  33. 5/5 builtin/repo: find tree with most entriesJustin Tobler, Feb 23, 2026
  34. Patrick SteinhardtFeb 24, 2026
  35. Lucas Seiki OshiroFeb 28, 2026
  36. Justin ToblerMar 1, 2026
  37. 0/6 builtin/repo: include largest object informationJustin Tobler, Mar 2, 2026
  38. 1/6 builtin/repo: update stats for each objectJustin Tobler, Mar 2, 2026
  39. 2/6 builtin/repo: add helper for printing keyvalue outputJustin Tobler, Mar 2, 2026
  40. Patrick SteinhardtMar 3, 2026
  41. Junio C HamanoMar 3, 2026
  42. Justin ToblerMar 3, 2026
  43. 3/6 builtin/repo: collect largest inflated objectsJustin Tobler, Mar 2, 2026
  44. Patrick SteinhardtMar 3, 2026
  45. 4/6 builtin/repo: add OID annotations to table outputJustin Tobler, Mar 2, 2026
  46. 5/6 builtin/repo: find commit with most parentsJustin Tobler, Mar 2, 2026
  47. 6/6 builtin/repo: find tree with most entriesJustin Tobler, Mar 2, 2026
  48. Junio C HamanoMar 2, 2026
  49. Junio C HamanoMar 6, 2026
  50. Justin ToblerMar 8, 2026

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.