ViewVC logotype

ViewVC Help: General


Directory View
Log View



ViewVC is a WWW interface for CVS and Subversion repositories. It allows you to browse the files and directories in a repository while showing you metadata from the repository history: log messages, modification dates, author names, revision numbers, copy history, and so on. It provides several different views of repository data to help you find the information you are looking for:

  • Directory View - Shows a list of files and subdirectories in a directory of the repository, along with metadata like author names and log entries.
  • Log View - Shows a revision by revision list of all the changes that have made to a file or directory in the repository, with metadata and links to views of each revision.
  • File Contents View (Markup View) - Shows the contents of a file at a particular revision, with revision information at the top of the page. File revisions which are GIF, PNG, or JPEG images are displayed inline on the page. Other file types are displayed as marked up text. The markup may be limited to turning URLs and email addresses into links, or configured to show colorized source code.
  • File Download (Checkout View) - Retrieves the unaltered contents of a file revision. Browsers may try to display the file, or just save it to disk.
  • File Annotate View - Shows the contents of a file revision and breaks it down line by line, showing the revision number where each one was last modified, along with links and other information. This view is disabled in some ViewVC configurations
  • File Diff View - Shows the changes made between two revisions of a file
  • Directory Tarball View - Retrieves a gzipped tar archive containing the contents of a directory.This view is disabled in the default ViewVC configuration.
  • Directory Query View - Shows information about changes made to all subdirectories and files under a parent directory, sorted and filtered by criteria you specify. This view is disabled in the default ViewVC configuration.
  • Revision View - Shows information about a revision including log message, author, and a list of changed paths. For Subversion repositories only.
  • Graph View - Shows a graphical representation of a file's revisions and branches complete with tag and author names and links to markup and diff pages. For CVS repositories only, and disabled in the default configuration.

Multiple Repositories

A single installation of ViewVC is often used to provide access to more than one repository. In these installations, ViewVC shows a Project Root drop down box in the top right corner of every generated page to allow for quick access to any repository.

Sticky Revision and Tag

By default, ViewVC will show the files and directories and revisions that currently exist in the repository. But it's also possible to browse the contents of a repository at a point in its past history by choosing a "sticky tag" (in CVS) or a "sticky revision" (in Subversion) from the forms at the top of directory and log pages. They're called sticky because once they're chosen, they stick around when you navigate to other pages, until you reset them. When they're set, directory and log pages only show revisions preceding the specified point in history. In CVS, when a tag refers to a branch or a revision on a branch, only revisions from the branch history are shown, including branch points and their preceding revisions.

Dead Files

In CVS directory listings, ViewVC can optionally display dead files. Dead files are files which used to be in a directory but are currently deleted, or files which just don't exist in the currently selected sticky tag. Dead files cannot be shown in Subversion repositories. The only way to see a deleted file in a Subversion directory is to navigate to a sticky revision where the file previously existed.

Artificial Tags

In CVS Repositories, ViewVC adds artificial tags HEAD and MAIN to tag listings and accepts them in place of revision numbers and real tag names in all URLs. MAIN acts like a branch tag pointing at the default branch, while HEAD acts like a revision tag pointing to the latest revision on the default branch. The default branch is usually just the trunk, but may be set to other branches inside individual repository files. CVS will always check out revisions from a file's default branch when no other branch is specified on the command line.

More Information

More information about ViewVC is available from See the links below for guides to CVS and Subversion

Documentation about CVS

Open Source Development with CVS
CVS User's Guide
Another CVS tutorial
Yet another CVS tutorial (a little old, but nice)
An old but very useful FAQ about CVS

Documentation about Subversion

Version Control with Subversion

ViewVC Users Mailinglist