===== Description ===== There should be a way to browse history and files in the repository from the web. At a minimum, this means: * Browse through the repository directory structure * View a revision log of changes to a file or directory * View all the changes made in a single commit Ideally, the web interface would be customisable, allowing us to tailor it to the %%FreeBSD%% site look-and-feel. Similarly, it should be possible to localise the interface to multiple languages, as the rest of the %%FreeBSD%% web site is also localised. ===== 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|NikClayton]] is the maintainer of SVN::Web, a Perl implementation that runs as either a CGI or a %%FastCGI%% script under any web server, and as both a mod_perl1 and mod_perl2 handler with Apache. 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 GNATS tickets, or other web pages) and is fully localised, making it a simple 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. See examples on [[http://hg.fr.freebsd.org/]] and [[http://archives.keltia.net/hg/]] ===== 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]]