Vestaweb is a web interface to the Vesta repository. The current version is a mostly read-only view of the repository (see that page for more information and screen shots).
Over the years, vestaweb has grown into a much larger application then it was originally designed to be. Since it has so outgrown its original design, it's now time for a from scratch redesign and rewrite. This page is for discussing this rewrite.
The initial rewrite is mostly finished, using HTML::Mason running via mod_perl. It uses the vesta perl modules created using SWIG. You can try it out (sorry, this link is offline).
Perhaps some portions of the functionality would still be best served as a cgi, syntax hilighting comes to mind. Diff also turned out to look more like a perl script then a web page at the source level. And, in the future, if we support operations like checkin and checkout, those would probably best be cgis also.
I've added "plugin" support, but so far only for stylesheets. I'm planning on making more useful plugins, but I'm not entirely sure where to put them. So far I'm planning on having hooks in the following places:
- one to filter results read from a directory.
- one at the start of each line in the package view.
- one at the end of each line in the package view.
- one at the end of each line in the directory view.
Please edit this page to add any other useful places for plugins. The plugin API is documented on /PluginAPI.
Another popular feature request is Blame-by-line. This would probably be pretty easy to implement using Algorithm::Annotate, but it would get slow for packages with a long history. So maybe some sort of database(ugh) to store already computed lines up to a point and then it would be easy to overlay the information for lines supplied from newer versions. Maybe there's some room for cooperation here with MergingFuture?
Keeping an Eye on the Competition
Here's a few other free VCS web interfaces one could look at for ideas: