ViewVC: Repository Browsing

On this page:


ViewVC Users Group

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.
  • Individually configurable virtual host support.
  • Line-based annotation/blame display.
  • Revision graph capabilities (via integration with CvsGraph) (CVS only).
  • Syntax highlighting support (via integration with GNU enscript or Highlight).
  • 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).
  • I18N 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.

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.

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).

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

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

Future Plans

ViewVC is an Open Source project. So any future development depends on the contributions that will be made by its user community. Certainly working patches have a greater chance to become realized quickly than feature requests, but please don't hesitate to submit your suggestions to our issue tracker.

Some things we're thinking about include:

  • UI streamlining/simplification.
  • Integration with CVS and Subversion commit mail scripts.
  • Integration with an indexer such as LXR.