> 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.