From: Jeff King <peff@peff.net>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: Jonathan Tan <jonathantanmy@google.com>,
git@vger.kernel.org, gitster@pobox.com
Subject: Re: [WIP v2 2/2] pack-objects: support --blob-max-bytes
Date: Wed, 7 Jun 2017 05:44:40 -0400 [thread overview]
Message-ID: <20170607094440.vg5ogy4bp5kg53s3@sigill.intra.peff.net> (raw)
In-Reply-To: <20170602232508.GA21733@aiede.mtv.corp.google.com>
On Fri, Jun 02, 2017 at 04:25:08PM -0700, Jonathan Nieder wrote:
> > 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.
> > 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
next prev parent reply other threads:[~2017-06-07 9:50 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-02 0:14 [WIP 0/2] Modifying pack-objects to support --blob-size-limit Jonathan Tan
2017-06-02 0:14 ` [WIP 1/2] pack-objects: rename want_.* to ignore_.* Jonathan Tan
2017-06-02 3:45 ` Junio C Hamano
2017-06-02 0:14 ` [WIP 2/2] pack-objects: support --blob-size-limit Jonathan Tan
2017-06-02 4:48 ` Junio C Hamano
2017-06-02 19:38 ` [WIP v2 0/2] Modifying pack objects to support --blob-max-bytes Jonathan Tan
2017-06-02 22:16 ` Jeff King
2017-06-05 17:35 ` Jonathan Tan
2017-06-07 9:46 ` Jeff King
2017-06-02 19:38 ` [WIP v2 1/2] pack-objects: rename want_.* to ignore_.* Jonathan Tan
2017-06-02 19:38 ` [WIP v2 2/2] pack-objects: support --blob-max-bytes Jonathan Tan
2017-06-02 22:26 ` Jeff King
2017-06-02 23:25 ` Jonathan Nieder
2017-06-07 9:44 ` Jeff King [this message]
2017-06-03 23:48 ` Junio C Hamano
2017-06-15 20:28 ` Jeff Hostetler
2017-06-15 21:03 ` Jonathan Tan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170607094440.vg5ogy4bp5kg53s3@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.com \
--cc=jrnieder@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).