This is an old revision of the document!
Description
There should be a way to browse history and files in the repository from the web.
Current Implementation
Currently cvsweb.cgi is used, as can be seen at [http://www.freebsd.org/cgi/cvsweb.cgi/ freebsd.org]
SVN Implementation
One of the access mechanisms that can be enabled for a Subversion repository is http (or https). This does not have to be enabled, but if it is it would provide a basic web interface for free. This interface would allow browsers to see the most recent version of files and directories and check them out, but not view diffs, changelogs, and so on, in the browser.
There are a large number of third party applications that generate prettier web interfaces to Subversion repositories.
[“NikClayton”] is the maintainer of SVN::Web, a Perl implementation that runs as either a CGI, a FastCGI under any web server, and as both a mod_perl1 and mod_perl2 handler. SVN::Web's interface is template driven (making it easy to adapt to the FreeBSD web site look and feel), can apply regular expressions to log messages before they are output (making it easy to create links between log messages and GANTS tickets, or other web pages) and is fully localised, making it a matter of translating doc strings to render the interface in multiple languages. An example of SVN::Web in action can be seen at http://jc.ngo.org.uk/svnweb/.
There are many other Subversion web interfaces listed at http://subversion.tigris.org/links.html
Hg Implementation
There are several ways to browse a Hg repository through the web:
- Hg itself includes a bare-bone web server started by hg serve. However it is single threaded is more for a quick browse than anything else.
- There are two CGI scripts: hgweb.cgi and hgwebdir. The latter is used for multiple repository access. These two are really simple to install. Different style can be used and while the default theme is simple, many people prefer a port of the gitweb style.
Git Implementation
The canonical git web interface is gitweb. Examples can be seen at [http://www.kernel.org/git/ kernel.org] or [http://gitweb.freedesktop.org/ freedesktop.org]