Re: [WIP v2 2/2] pack-objects: support --blob-max-bytes
- From
Jeff King <peff@peff.net>
- Date
- Jun 7, 2017, 09:44 UTC
- Message-ID
- <20170607094440.vg5ogy4bp5kg53s3@sigill.intra.peff.net>
- In-Reply-To
- <20170602232508.GA21733@aiede.mtv.corp.google.com>
On Fri, Jun 02, 2017 at 04:25:08PM -0700, Jonathan Nieder wrote:
Show 9 quoted lines
> > We have a name-hash cache extension in the bitmap file, but it doesn't > > carry enough information to deduce the .git-ness of a file. I don't > > think it would be too hard to add a "flags" extension, and give a single > > bit to "this is a .git file". > > A nicer approach IMHO is to include an extra bitmap, like the existing > object-type bitmaps (see the dump_bitmap calls in > bitmap_writer_finish). This would would represent the set of all > .git* blobs in the pack.
Yeah, it could be stored as a bitmap, which would be slightly smaller (since it would be mostly 0's). I think either way it would need an extension flag in the header to signal its presence.
Older versions of Git are OK with having flags they don't understand. I know JGit used to complain about seeing a bitmap with unknown flags, but I'm not sure if that is still the case.
Show 16 quoted lines
> > If you're not just avoiding large blobs but trying > > to get a narrow clone, you don't want the .git files from the > > uninteresting parts of the tree. > > This is something I've wondered about, too. Part of the story is that > we haven't started omitting trees, so there is already O(number of > trees) objects being sent and some additional small blobs for .git* > specials doesn't make it much worse. Sending all .git* blobs keeps > things simple since the server doesn't have to infer which .git* blobs > are relevant to this client. > > Longer term, we will likely want to allow clients to request omission > of some trees, too. Omitting the corresponding .git* files becomes > more straightforward at that point. > > Does that make sense?
Yeah, I agree we'd want to avoid the trees, too, in that case.
-Peff