Subject: Re: [PATCH v6 5/9] pack-objects: perform name-hash traversal for unpacked objects

From: Taylor Blau <[email-masked]>
Date: Tue, 24 Jun 2025 12:08:10 -0400

On Mon, Jun 23, 2025 at 04:08:29PM -0700, Junio C Hamano wrote:
> Taylor Blau <[email-masked]> writes:
>
> > Now that the 'rev_info' struct is declared outside of
> > `read_packs_list_from_stdin()`, we can pass it to
> > `add_objects_in_unpacked_packs()` and add any loose objects as tips to
> > the above-mentioned traversal, in theory producing slightly tighter
> > packs as a result.
>
> So the idea is to pretend any and all loose commits as if they are
> at the tip of branches?  By doing so, we ensure each of the tree and
> blob objects contained in them has a reasonable path-from-the-root?

That's right. We had previously only considered commit objects in the
pack(s) being combined as possible traversal tips, but this change
causes us to do the same for loose commit objects as well.

I do kind of wonder how much of a difference this makes on delta quality
overall, and suspect that it is highly workflow-specific and likely very
difficult to measure in general.

Thanks,
Taylor