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

Re: [RFC] gitweb wishlist and TODO list

From
DSDennis Stosberg <dennis@stosberg.net>
Date
Jun 21, 2006, 13:05 UTC
Message-ID
<20060621130535.G2b34d382@leonov.stosberg.net>
In-Reply-To
<46a038f90606201233p6283febbn9a46e36c3a666903@mail.gmail.com>
Martin Langhoff wrote:
> And, as you mention in your other post, mod_perl support. And a bit of
> speed. Gitweb rght now is really really slow.

A few days ago I have tried to run gitweb under mod_perl and these are my results. All of this hasn't got any real testing, so this is more a request for comment. I had to make two changes to gitweb to get it running as a Registry script with mod_perl:

(1) With mod_perl you cannot access variables which were defined
    with "my" on file scope from subroutines.  Unless gitweb becomes
    split in separate packages the easiest solution is probably to
    use "our" to declare them.
(2) Setting %ENV has no effect on spawned processes under mod_perl,
    so the git commands would never find the project directories.
    My first thought was to set $GIT_DIR on the commands' command
    lines like in open($fh, '$GIT_DIR=blah git-rev-list ...') but it
    would lead to an extra shell being spawned on every invocation
    of a git command.
    So I added the possibility to set/override the path to the
    repository with a command line parameter.  For simplicity I
    handled that parameter in git.c.  The drawbacks are that it has
    to be given before the command name and that it won't work when
    commands are invoked as "git-command".

The gains vary hugely. Inexpensive views like the title page, blob and commit view are sped up by a factor of 5 to 8 for successive requests. The project summary in contrast issues quite a number of calls to git, so the speedup is only a few percent for it.

Regards, Dennis

Previous: Paul MackerrasNext: Dennis Stosberg
Message 12 of 35 in “[RFC] gitweb wishlist and TODO list”
  1. Jakub NarebskiJun 20, 2006
  2. Carl WorthJun 20, 2006
  3. Jakub NarebskiJun 20, 2006
  4. Petr BaudisJun 20, 2006
  5. Jakub NarebskiJun 20, 2006
  6. Petr BaudisJun 20, 2006
  7. Jakub NarebskiJun 21, 2006
  8. Martin LanghoffJun 20, 2006
  9. Jakub NarebskiJun 20, 2006
  10. Martin LanghoffJun 20, 2006
  11. Paul MackerrasJul 1, 2006
  12. Dennis StosbergJun 21, 2006
  13. 1/3 gitweb: Declare global variables with "our"Dennis Stosberg, Jun 21, 2006
  14. 2/3 Add a parameter to specify the repository pathDennis Stosberg, Jun 21, 2006
  15. 3/3 gitweb: Use --git-dir parameter instead of setting $ENV{'GIT_DIR'}Dennis Stosberg, Jun 21, 2006
  16. Timo HirvonenJun 21, 2006
  17. Jakub NarebskiJun 21, 2006
  18. Jakub NarebskiJun 21, 2006
  19. Dennis StosbergJun 22, 2006
  20. Ryan AndersonJun 22, 2006
  21. Ryan AndersonJun 21, 2006
  22. Jakub NarebskiJun 21, 2006
  23. Junio C HamanoJun 20, 2006
  24. Petr BaudisJun 20, 2006
  25. Jakub NarebskiJun 20, 2006
  26. Petr BaudisJun 20, 2006
  27. Thomas GlanzmannJun 20, 2006
  28. Josef WeidendorferJun 21, 2006
  29. Jakub NarebskiJun 21, 2006
  30. Josef WeidendorferJun 21, 2006
  31. Jakub NarebskiJun 21, 2006
  32. Jakub NarebskiJun 22, 2006
  33. Junio C HamanoJun 22, 2006
  34. Jakub NarebskiJun 21, 2006
  35. Josef WeidendorferJun 21, 2006

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.