Re: [PATCH 03/10] builtin/pack-objects.c: learn '--assume-kept-packs-closed'
flat view
From: Taylor Blau <hidden>
Date: 2021-01-29 23:29:35
On Fri, Jan 29, 2021 at 03:03:08PM -0800, Junio C Hamano wrote:
Taylor Blau [off-list ref] writes:quoted
So, I think that teaching pack-objects a way to understand a caller that says "include objects from packs X, Y, and Z, but not if they appear in packs A, B, or C, and also pull in any loose objects" is the best way forward here.Are our goals still include that the resulting packfile has good delta compression and object locality? Reachability traversal discovers which commit comes close to which other commits to help pack-objects to arrange the resulting pack so that objects that appear close together in history appears close together. It also gives each object a pathname hint to help group objects of the same type (either blobs or trees) with like-paths together for better deltification.
I think our goals here are somewhere between having fewer packfiles while also ensuring that the packfiles we had to create don't have horrible delta compression and locality. But now that you do mention it, I remember the reachability traversal's bringing in object names was a reason that we decided to implement this series using a reachability traversal in the first place.
Without reachability traversal, I would imagine that it would become quite important to keep the order in which objects appear in the original pack, and existing delta chain, as much as possible, or we'd be seeing a horribly inefficient pack like fast-import would produce.
Yeah; we'd definitely want to feed the objects to pack-objects in the order that they appear in the original pack. Maybe that's not that bad a tradeoff to make, though...
Thanks.
Thanks, Taylor