git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff Hostetler <git@jeffhostetler.com>
To: Jeff King <peff@peff.net>, Jonathan Tan <jonathantanmy@google.com>
Cc: git@vger.kernel.org, gitster@pobox.com
Subject: Re: [WIP v2 2/2] pack-objects: support --blob-max-bytes
Date: Thu, 15 Jun 2017 16:28:24 -0400	[thread overview]
Message-ID: <14b1fbb0-d4fb-1dd3-936c-deea6d20a99b@jeffhostetler.com> (raw)
In-Reply-To: <20170602222640.u6vni5tdpjp3sayt@sigill.intra.peff.net>



On 6/2/2017 6:26 PM, Jeff King wrote:
> On Fri, Jun 02, 2017 at 12:38:45PM -0700, Jonathan Tan 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".
> 
> I do also wonder if the two features would need to be separated for a
> GVFS-style solution. 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. You want to get no blobs at all, and
> then fault them in as they become relevant due to user action.
> 
> -Peff
> 

I agree with Peff here.  I've been working on my partial/narrow/sparse
clone/fetch ideas since my original RFC and have come to the conclusion
that the server can do the size limiting efficiently, but we should
leave the pathname filtering to the client.  That is, let the client
get the commits and trees and then locally apply pattern matching,
whether that be a sparse-checkout definition or simple ".git*"
matching and then make a later request for the "blobs of interest".

Whether we "fault-in" the missing blobs or have a "fetch-blobs"
command (like fetch-pack) to get them is open to debate.

There are concerns about the size of the requested blob-id list in a
fetch-blobs approach, but I think there are ways to say I need all
of the blobs referenced by the directory /foo in commit xxxx (and
optionally, that aren't present in directory /foo in commit yyyy
or in the range yyyy..xxxx).  (handwave)

Jeff

  parent reply	other threads:[~2017-06-15 20:28 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
2017-06-03 23:48     ` Junio C Hamano
2017-06-15 20:28     ` Jeff Hostetler [this message]
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=14b1fbb0-d4fb-1dd3-936c-deea6d20a99b@jeffhostetler.com \
    --to=git@jeffhostetler.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jonathantanmy@google.com \
    --cc=peff@peff.net \
    /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).