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

Re: [PATCH 2/2] repack: repack promisor objects if -a or -A is set

From
JTJonathan Tan <jonathantanmy@google.com>
Date
Aug 8, 2018, 18:45 UTC
Message-ID
<20180808184544.120498-1-jonathantanmy@google.com>
In-Reply-To
<xmqqy3dhiu08.fsf@gitster-ct.c.googlers.com>
Show 10 quoted lines
> But what to delta against what else is determined by the pathname
> info, which is now lost by enumerating objects without tree/history
> walking.  By giving phoney pathnames to objects while enumerating
> them in offset order and giving similar pathnames to objects closer
> to each other, I was hoping that better bases will likely to be in
> the same window.  The order in which objects are prepared and fed to
> try_delta() is "group by type, and then sort by path-hash (major
> key) and size (descending order, used as minor key)", so that
> the largest among similarly named blobs is stored as base and other
> blobs with similar name try to become delta against that one.

Thanks for the patient explanation - I think I see it now. If we enumerate in pack order and pass "<sha-1> <fake-name>" instead of "<sha-1>" to pack-objects in such a way that we make pack-objects sort by {type -> pack-order -> size} instead of {type -> size}, we can hopefully get better deltas. I'll write a NEEDSWORK similar to this.

I'll send a reroll later today.
Previous: Junio C HamanoNext: Jeff King
Message 7 of 18 in “Repacking of promisor packfiles”
  1. 0/2 Repacking of promisor packfilesJonathan Tan, Aug 7, 2018
  2. 1/2 repack: refactor setup of pack-objects cmdJonathan Tan, Aug 7, 2018
  3. 2/2 repack: repack promisor objects if -a or -A is setJonathan Tan, Aug 7, 2018
  4. Junio C HamanoAug 7, 2018
  5. Jonathan TanAug 7, 2018
  6. Junio C HamanoAug 8, 2018
  7. Jonathan TanAug 8, 2018
  8. Jeff KingAug 8, 2018
  9. Junio C HamanoAug 8, 2018
  10. Junio C HamanoAug 7, 2018
  11. Jonathan TanAug 7, 2018
  12. Junio C HamanoAug 8, 2018
  13. 0/2 Repacking of promisor packfilesJonathan Tan, Aug 8, 2018
  14. 1/2 repack: refactor setup of pack-objects cmdJonathan Tan, Aug 8, 2018
  15. 2/2 repack: repack promisor objects if -a or -A is setJonathan Tan, Aug 8, 2018
  16. Junio C HamanoAug 9, 2018
  17. Jonathan TanAug 9, 2018
  18. Duy NguyenAug 18, 2018

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.