git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: Derrick Stolee <derrickstolee@github.com>
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"ZheNing Hu via GitGitGadget" <gitgitgadget@gmail.com>,
	git@vger.kernel.org,
	"Christian Couder" <christian.couder@gmail.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Jeff Hostetler" <jeffhost@microsoft.com>,
	"Derrick Stolee" <dstolee@microsoft.com>,
	"ZheNing Hu" <adlternative@gmail.com>
Subject: Re: [PATCH] [RFC] list-objects-filter: introduce new filter sparse:buffer=<spec>
Date: Wed, 10 Aug 2022 17:15:43 -0400	[thread overview]
Message-ID: <YvQf/xW7oohAsJct@coredump.intra.peff.net> (raw)
In-Reply-To: <46ca40a9-2d9a-3c7c-3272-938003f4967a@github.com>

On Tue, Aug 09, 2022 at 09:37:09AM -0400, Derrick Stolee wrote:

> > Was the reason why we have "we limit to an object we already have"
> > restriction because we didn't want to blindly use a piece of
> > uncontrolled arbigrary end-user data here?  Just wondering.
> 
> One of the ideas here was to limit the opportunity of sending an
> arbitrary set of data over the Git protocol and avoid exactly the
> scenario you mention.

One other implication here is that the filter spec is sent inside of a
pkt-line.  So the implementation here is limiting us to 64kb. That may
sound like a lot for simple specs, but I imagine in big repos they can
possibly get pretty complex.

That would be fixable with a protocol extension to take the data over
multiple pkt-lines.

That said...

> At this moment, I think path-scoped filters have a lot of problems
> that need solving before they can be used effectively in the wild.
> I would prefer that we solve those problems before making the
> feature more complicated. That's a tall ask, since these problems
> do not have simple solutions.

...I agree with this. It is nice to put more power in the hands of the
clients, but we have to balance that with other issues like server
resource use. The approach so far has been to implement the simplest and
most efficient operations at the client-server level, and then have the
client build local features on top of that. So in this case, probably
requesting that _no_ trees are sent in the initial clone, and then
faulting them in as the client explores the tree using its own local
sparse definition. And I think that mostly works now.

Though I admit I do not keep a close watch on the status of
partial-checkout features. I mostly always cared about it from the
server provider angle. ;)

-Peff

  reply	other threads:[~2022-08-10 21:15 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-08 11:29 [PATCH] [RFC] list-objects-filter: introduce new filter sparse:buffer=<spec> ZheNing Hu via GitGitGadget
2022-08-08 16:15 ` Junio C Hamano
2022-08-09  6:13   ` ZheNing Hu
2022-08-09 13:37   ` Derrick Stolee
2022-08-10 21:15     ` Jeff King [this message]
2022-08-12 15:49       ` ZheNing Hu
2022-08-14  6:54         ` Jeff King
2022-08-12 15:40     ` ZheNing Hu
2022-08-26  5:10     ` ZheNing Hu

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=YvQf/xW7oohAsJct@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=adlternative@gmail.com \
    --cc=avarab@gmail.com \
    --cc=christian.couder@gmail.com \
    --cc=derrickstolee@github.com \
    --cc=dstolee@microsoft.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=jeffhost@microsoft.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).