Re: [PATCH 07/11] pack-objects: move in_pack out of struct object_entry
From: Duy Nguyen <hidden>
Date: 2018-03-02 00:03:07
On Thu, Mar 1, 2018 at 9:49 PM, Jeff King [off-list ref] wrote:
On Thu, Mar 01, 2018 at 04:10:48PM +0700, Nguyễn Thái Ngọc Duy wrote:quoted
Instead of using 8 bytes (on 64 bit arch) to store a pointer to a pack. Use an index isntead since the number of packs should be relatively small. This limits the number of packs we can handle to 256 (still unreasonably high for a repo to work well). If you have more than 256 packs, you'll need an older version of Git to repack first.I overall like the direction of this series, but I think this one is just too much. While you definitely shouldn't have a ton of packs, this leaves the user with no real escape hatch. And 256 isn't actually that many packs.
It was raised back to 4096 at the end (I didn't know how many spare bits we had at this point). Agreed on the escape hatch though. I think we could do better: if there are more than X packs, we repack X packs into one and leave the rest alone. The _next_ pack-objects will pick another X packs to combine. Repeat until you only have one pack left. -- Duy