ViewVC: Repository Browsing

On this page:

Valid XHTML 1.0 Strict

What Is ViewVC?

ViewVC is a browser interface for CVS and Subversion version control repositories. It generates templatized HTML to present navigable directory, revision, and change log listings. It can display specific versions of files as well as diffs between those versions. Basically, ViewVC provides the bulk of the report-like functionality you expect out of your version control tool, but much more prettily than the average textual command-line program output.

Here are some of the additional features of ViewVC:

  • Support for filesystem-accessible CVS and Subversion repositories.
  • Support for path-based authorization, including parsing and honoring Subversion authz configuration files. (Coming in ViewVC 1.1!)
  • RSS feed generation for tracking changes to repositories or individual items within repositories.
  • Individually configurable virtual host support.
  • Line-based annotation/blame display.
  • Revision graph capabilities (via integration with CvsGraph) (CVS only).
  • Syntax highlighting support.
  • Bonsai-like repository query facilities.
  • Template-driven output generation.
  • Colorized, side-by-side differences.
  • Tarball generation (by tag/branch for CVS, by revision for Subversion).
  • Localization support based on the Accept-Language request header.
  • Ability to run either as CGI script or as a standalone server.
  • Regexp-based file searching.
  • INI-like configuration file (as opposed to requiring actual code tweaks).

For a complete list of changes present in each release, see ViewVC's CHANGES file.

Requirements

The only hard software requirement for running ViewVC is Python 1.5.2 or later. All other requirements depend on what you want to do with the tool.

For use with Subversion repositories, you need these things:

  • Subversion 1.2 or later and its SWIG Python bindings.
  • GNU diff
  • Physical access to a Subversion repository (though there is limited, use-at-your-risk support for remote access, too).

If you plan to use ViewVC with CVS repositories, you need the following things:

  • RCS (Revision Control System)
  • GNU diff
  • Read-only, physical access to a CVS repository.

ViewVC integrates with additional pieces of software to provide certain bits of optional functionality:

  • Apache HTTP Server, or another server capable of running CGI programs — unless you just want ViewVC to run in standalone server mode.
  • MySQL — Needed to use the commit database query functionality.
  • Pygments — Needed for syntax highlighting in versioned file contents displays. (Coming in ViewVC 1.1!)
  • CvsGraph — Needed for version graph displays.