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

Re: .git/info/refs

From
HAH. Peter Anvin <hpa@zytor.com>
Date
Jan 25, 2007, 17:13 UTC
Message-ID
<45B8E551.9020808@zytor.com>
In-Reply-To
<ep83m2$mts$1@sea.gmane.org>
Jakub Narebski wrote:
> 
> I don't think it can be easily expanded. .git/info/refs is meant for
> http-fetch, and it mimics git-ls-remote / git-peek-remote output.

For heaven's sake, in computer science we can *NEVER* use the same feature for *MORE THAN ONE THING*. If it doesn't work format-wise that's fine, but "it's only supposed to be used by dumb transports" is ridiculous.

Show 5 quoted lines
> BTW. putting the info of git-for-each-ref into .git/info/refs-details
> would mean that instead of "24175 calls to git" one would need to
> read 24175 files. Perhaps the whole info needed to generate projects
> index page should be pre-generated on push (update), instead of per
> project (per repository) .git/info/refs-details
No, it should be one file per repository, not one file per ref.  Why? 
Obviously we don't want 24175 files to be accessed.  However, a push can 
only affect files for which the repository owner has permission and 
which resides in the repository filespace, so it should stay inside that 
  space.

On kernel.org, this would reduce the load from 24175 calls to git to reading 250 files. Although the latter is still expensive (and will probably need post-generation caching) the files should be small and cacheable by the kernel, and the resulting I/O load should be quite small.

Anyway, as far as git-update-server-index is concerned, I'm *very* concerned that there be a single command that updates all the cached information across the repository. Telling everyone to update their hooks every time we want to add cached information is silly. Right now, git-update-server-index is the command to update cached information, and for usability reasons there should be a single entry point.

	-hpa
Previous: Johannes SchindelinNext: Jakub Narebski
Message 13 of 39 in “.git/info/refs”
  1. H. Peter AnvinJan 24, 2007
  2. Jakub NarebskiJan 24, 2007
  3. H. Peter AnvinJan 24, 2007
  4. Johannes SchindelinJan 24, 2007
  5. H. Peter AnvinJan 24, 2007
  6. Johannes SchindelinJan 24, 2007
  7. H. Peter AnvinJan 24, 2007
  8. Johannes SchindelinJan 24, 2007
  9. H. Peter AnvinJan 24, 2007
  10. Jakub NarebskiJan 24, 2007
  11. Jakub NarebskiJan 24, 2007
  12. Johannes SchindelinJan 24, 2007
  13. H. Peter AnvinJan 25, 2007
  14. Jakub NarebskiJan 26, 2007
  15. Junio C HamanoJan 26, 2007
  16. H. Peter AnvinJan 26, 2007
  17. Jakub NarebskiJan 26, 2007
  18. Johannes SchindelinJan 26, 2007
  19. H. Peter AnvinJan 26, 2007
  20. H. Peter AnvinJan 26, 2007
  21. Jakub NarebskiJan 24, 2007
  22. hpa@zytor.comJan 24, 2007
  23. Johannes SchindelinJan 25, 2007
  24. H. Peter AnvinJan 25, 2007
  25. Johannes SchindelinJan 25, 2007
  26. hpa@zytor.comJan 24, 2007
  27. Junio C HamanoJan 25, 2007
  28. H. Peter AnvinJan 25, 2007
  29. Junio C HamanoJan 25, 2007
  30. H. Peter AnvinJan 25, 2007
  31. Johannes SchindelinJan 25, 2007
  32. H. Peter AnvinJan 27, 2007
  33. Santi BéjarJan 31, 2007
  34. Johannes SchindelinFeb 1, 2007
  35. H. Peter AnvinFeb 1, 2007
  36. Johannes SchindelinFeb 1, 2007
  37. H. Peter AnvinFeb 1, 2007
  38. Matthias LederhoferFeb 1, 2007
  39. H. Peter AnvinFeb 1, 2007

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.