git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Exec upload-pack on remote with what parameters to get direntries.

From
Bruno Albuquerque <bga@google.com>
Date
Aug 31, 2021, 15:35 UTC
Message-ID
<CAPeR6H7_V+ypzyN39e27+NCRqG-nA17sgq=qtefzFF3Dg50bnA@mail.gmail.com>
In-Reply-To
<87sfypwuwx.fsf@evledraar.gmail.com>

On Tue, Aug 31, 2021 at 7:28 AM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:

[Replying again as I used HTML mail by mistake. Sorry.]
Show 5 quoted lines
> I.e. someone setting up a git server probably isn't going to suspect
> that one day their server load is going to go up by some big % because
> some developer somewhere is using a local IDE whose every file click on
> a directory is a new remote server request (i.e. the case where
> "object-info"'s functionality is expanded like this).

Do you mean by someone directly sending object-info requests? I am working on wiring object-info to some of the existing tools (cat-file/ls-tree) so this is the general idea about how I see this being used:

- object-info would be used when it made sense but only if the actual
object being queried is not already fetched locally. If you think of a
virtual filesystem that is backed by, say, partial clones, this mostly
means retrieving metadata information to be displayed to the user.
- Still in the context of a virtual filesystem, metadata is usually
cached locally independently of Git itself, further reducing the need
to call object-info (but, of course, this is a brittle assumption as
it is not controlled by Git).
- git cat-file, for example, would be changed to support real batching
and then send a single request instead of the multiple requests it
does currently.

My point is that I understand where your worry is coming from and as long as someone can send arbitrary requests then it is possible your scenario of a heavier server load can potentially happen but as far as the expected canonical usage, I do not think this would be a problem and, in fact, under some usage patterns it might make things better (mostly due to batching support in object-info).

With all that being said, I don' t think making it optional would be an issue so I have no strong feelings about this. I am fine with whatever is agreed to be the best approach.

> I found myself wondering this when reading serve.c the other day,
> i.e. why we have "always_advertise" for object-info, but it seemed
> innocuous enough given how it's described in a2ba162cda2 (object-info:
> support for retrieving object info, 2021-04-20).

For what it is worth, The same change is now being reviewed in JGit and there the feature is conditionally enabled. But that was a side-effect of needing to deploy it to multiple servers before making the feature available to clients.

--
Bruno Albuquerque | Software Engineer | bga@google.com | +1 650-395-8242
Previous: Ævar Arnfjörð BjarmasonNext: Junio C Hamano
Message 7 of 12 in “Exec upload-pack on remote with what parameters to get direntries.”
  1. Stef BonAug 28, 2021
  2. Jeff KingAug 30, 2021
  3. Junio C HamanoAug 30, 2021
  4. Jeff KingAug 30, 2021
  5. Junio C HamanoAug 30, 2021
  6. Ævar Arnfjörð BjarmasonAug 31, 2021
  7. Bruno AlbuquerqueAug 31, 2021
  8. Junio C HamanoAug 31, 2021
  9. Stef BonAug 31, 2021
  10. Jeff KingAug 31, 2021
  11. Stef BonAug 31, 2021
  12. Ævar Arnfjörð BjarmasonAug 31, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.