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

Re: [PATCH 0/3] Git::Repo API and gitweb caching

From
LWLea Wiemann <lewiemann@gmail.com>
Date
Aug 18, 2008, 19:34 UTC
Message-ID
<48A9CEC0.2020100@gmail.com>
In-Reply-To
<4876B223.4070707@gmail.com>
Lea Wiemann wrote:
Show 5 quoted lines
> As follow-ups to this message, I'll be sending three patches for
> 
> 1) adding the Mechanize tests,
> 2) adding the Git::Repo API, and (the important part:)
> 3) making gitweb use the Git::Repo API, and adding caching to gitweb.

I'll be sending the next version of the patch series as a follow-up to this message. As the GSoC pencils-down deadline is in -0.5h, I'll try to get the code out first and then I'll post some comments on a few aspects it.

I unfortunately didn't end up being able to split up the third patch (use Perl API in Gitweb, and add caching layer), since the two changes are too intricately linked to be properly separated (I actually tried splitting it two times, two different ways, and it just didn't work). The only thing that's really not caching-specific to the third patch (i.e. where using the Perl API merely prettifies the code) is where Gitweb now uses $repo->get_sha1. Those few occurrences are only a very small part of the patch, and I don't think they'd warrant ripping it apart.

Here's the list of changes since the last patch series:
Patch 1/1 (Mechanize tests):
- typo
Patch 2/3 (Perl API):
- remove get_refs, get_path, and version methods
- rename cat_file to get_object
- remove unnecessary cmd_output and get_bidi_pipe methods -- they
  shouldn't be part of this API (because they don't fit into the
  design), and keeping and underscore-prefixing them isn't worth the
  code complexity -- so the Git::Repo methods now use 'open' calls
  directly
- rename the 'directory' options of RepoRoot->new, Repo->new, and
  RepoRoot->repo to 'repo_dir' and 'root_dir' respectively
- ignore (rather than die on) unrecognized header lines in tag/commit
  objects
- do not use unnecessary hash index optimization
- add design notes
- underscore-prefix assert_opts and assert_sha1
- remove dependency of the test suite (t9710) on non-standard modules;
  Git::Repo should now run on vanilla Perl 5.8
- respect PERL_PATH in test suite
- add "use perl 5.008" statement (so it dies for Perl <5.8) -- it
  needs Perl 5.8 for Unicode support
- do not "or" author/committer/tagger/type with '' (it's unnecessary
  and silly)
- improved documentation, per Jakub's suggestions mostly
- author, committer, tagger, and message now all return Unicode
  strings per <48809D31.5030008@gmail.com>
- some minor cleanups, typos
- remove warning about Git::Repo being unstable; this is a silly
  excuse that in theory allows you to make incompatible changes ("we
  told you so"), but in practice never holds up
Patch 3/3 (Gitweb):
- add installation note for the Git perl package to INSTALL
- accomodate removals/renamings in Git::Repo API
- remove two TODO markers in t9503 (gitweb tests) -- works now thanks
  to Git::Repo
- some minor cleanups, typos
- do not remove the Expires header (as was the case in the previous
  patch)
- remove option to assume case sensitive file system to unclutter the
  code -- the cache will now work on any file system
- elaborate on inefficient refs/ traversal code in
  get_last_modification method
Previous: Lea Wiemann
Message 55 of 55 in “Git::Repo API and gitweb caching”
  1. 0/3 Git::Repo API and gitweb cachingLea Wiemann, Jul 11, 2008
  2. 1/3 gitweb: add test suite with Test::WWW::Mechanize::CGILea Wiemann, Jul 11, 2008
  3. 2/3 add new Git::Repo APILea Wiemann, Jul 11, 2008
  4. Junio C HamanoJul 13, 2008
  5. Lea WiemannJul 14, 2008
  6. Jakub NarebskiJul 13, 2008
  7. Lea WiemannJul 14, 2008
  8. Petr BaudisJul 14, 2008
  9. Lea WiemannJul 14, 2008
  10. Jakub NarebskiJul 14, 2008
  11. Lea WiemannJul 15, 2008
  12. Petr BaudisJul 18, 2008
  13. Jakub NarebskiJul 18, 2008
  14. Petr BaudisJul 18, 2008
  15. Lea WiemannJul 18, 2008
  16. Petr BaudisJul 18, 2008
  17. Johannes SchindelinJul 18, 2008
  18. Statictics on Git.pm usage in git commands (was: [PATCH 2/3] add new Git::Repo API)Jakub Narebski, Jul 19, 2008
  19. Petr BaudisJul 19, 2008
  20. Jakub NarebskiJul 20, 2008
  21. Petr BaudisJul 20, 2008
  22. Johannes SchindelinJul 20, 2008
  23. Petr BaudisJul 20, 2008
  24. Johannes SchindelinJul 20, 2008
  25. Petr BaudisJul 20, 2008
  26. Johannes SchindelinJul 20, 2008
  27. Petr BaudisJul 18, 2008
  28. Jakub NarebskiJul 19, 2008
  29. Jakub NarebskiJul 19, 2008
  30. Petr BaudisJul 20, 2008
  31. Jakub NarebskiJul 20, 2008
  32. Jakub NarebskiJul 16, 2008
  33. Lea WiemannJul 16, 2008
  34. Jakub NarebskiJul 17, 2008
  35. Lea WiemannJul 18, 2008
  36. Jakub NarebskiJul 18, 2008
  37. Lea WiemannJul 18, 2008
  38. 3/3 gitweb: use new Git::Repo API, and add optional cachingLea Wiemann, Jul 11, 2008
  39. Jakub NarebskiJul 14, 2008
  40. Lea WiemannJul 14, 2008
  41. Jakub NarebskiJul 14, 2008
  42. Lea WiemannJul 14, 2008
  43. Jakub NarebskiJul 15, 2008
  44. Lea WiemannJul 15, 2008
  45. Johannes SchindelinJul 15, 2008
  46. J.H.Jul 15, 2008
  47. Lea WiemannJul 15, 2008
  48. J.H.Jul 15, 2008
  49. Johannes SchindelinJul 11, 2008
  50. Jakub NarebskiJul 11, 2008
  51. Lea WiemannJul 11, 2008
  52. Abhijit Menon-SenJul 11, 2008
  53. Jakub NarebskiJul 12, 2008
  54. Lea WiemannJul 19, 2008
  55. Lea WiemannAug 18, 2008

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.