Lea Wiemann wrote: > 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@xxxxxxxxx> - 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html