On Thu, Mar 1, 2018 at 9:49 PM, Jeff King <peff@xxxxxxxx> wrote: > On Thu, Mar 01, 2018 at 04:10:48PM +0700, Nguyễn Thái Ngọc Duy wrote: > >> 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