ViewVC: Frequently Asked Questions (FAQ)

On this page:

Valid XHTML 1.0 Strict

Answers

General Usage

Where does the installation documentation, if any, live?

ViewVC's installation how-to documentation lives in the INSTALL file located in the root of the ViewVC source code distribution. The most recent version of this document (which may cover unreleased ViewVC versions) can be found at http://viewvc.tigris.org/source/browse/*checkout*/viewvc/trunk/INSTALL. If you are upgrading an existing ViewVC instance, you'll also want to read the upgrade documentation, found at http://viewvc.tigris.org/source/browse/*checkout*/viewvc/trunk/docs/upgrading-howto.html.

Does ViewVC support path-based authorization, such as Subversion's authz-file mechanism?

There are no released versions of ViewVC which have this support built-in. The feature request is being tracking in issue #268, and we're working to complete it for release in ViewVC 1.1.

In the meantime, there are some available workarounds. For example, if you are running ViewVC under Apache, you can use regular Apache configuration directives to authz-protect areas of your repository — see the Location and LocationMatch directives, as well as the Authentication, Authorization and Access Control portions of the Apache HTTP Server documentation. This works best when ViewVC is only serving up a single repository, or when the root_as_url_component option is enabled otherwise. And you might have to disable the checkout view, or at least turn off the use of checkout_magic (see viewvc.conf for details).

What causes "Error: OSError: [Errno 2] No such file or directory: '/tmp/tmpGc-Ztj'"?

This is tracked in issue #282. While we haven't figured out how to make the error message more graceful or helpful, the basic problem seems to generally boil down to a misconfiguration of ViewVC. Make sure your helper applications are in the program search path ($PATH, e.g.) on your ViewVC server, or accurately specified in viewvc.conf.

Why does SOME-FEATURE work under standalone.py, but not under Apache (or IIS or …)?

Most of the time folks run standalone.py, they do so as a regular system user, from a shell running with any and all the environmental customizations present in their shell startup scripts. But most web server packages (like Apache) run as a different, often underprivileged, user, whose environment is stripped down to just the system-wide default state. This can cause problems for ViewVC's various helper applications, which might reside in a location that's included as part of your (and thus standalone.py's) $PATH, but not that of the user as whom the web server package runs. The solution might be as simple explicitly configuring the paths of the helper applications in viewvc.conf, or as complex as expanding the program search path used by your web server software.

How do I enable ViewVC's RSS feed capabilities?

ViewVC generates its RSS feeds from repository data mirrored in a database as part of its MySQL integration. Follow the steps in ViewVC's INSTALL file to setup and configure the MySQL integration and begin mirroring your commit metadata in the database — the RSS feed feature will then be enabled with no additional configuration.

CVS Browsing

What causes "Error: Rlog output ended early. Expected RCS file "/opt/cvs/project/file,v""?

This error generally occurs when ViewVC is unable to locate the rlog tool, one of several in the RCS toolchain. If the system doesn't have the RCS toolchain installed, you'll need to install it. If the RCS toolchain is installed, but ViewVC simply can't locate the RCS programs, either ensure that the programs are in the system $PATH, or specify their location in the viewvc.conf file — the option is utilities/rcs_dir as of ViewVC 1.1, general/rcs_path in earlier versions.

What causes "Error: COMalformedOutput: Unable to find filename in co output stream"?

This is another symptom of the basic problem described here.

What causes "Error: error during rlog: 0x100"?

### TODO ###

Why do my directories have no files in them?

There are a few reasons why this can happen. Here are some of the most common ones:

  • Some folks mistakenly point ViewVC's configuration bits to their CVS working copies. But ViewVC isn't a working copy browser — it's a repository browser. If you don't know the difference, here's a tip that might help: CVS repositories are directories trees filled with files that end with ",v". If your directory isn't filled with "comma vee" files, it probably is not a CVS repository.

ViewVC doesn't show files I'm looking for, and instead displays the message "NOTE: There are N files, but none match the current selection criteria". How can I fix this?

From time to time, CVS and CVSNT add support for new keywords to the RCS backend used to house repository data. If you're running a version of ViewVC or ViewCVS that hasn't yet learned to handle those new keywords, you might get the error you're seeing. The solution is to try to get versions of CVS/CVSNT and ViewVC which are better aligned, which generally means upgrading ViewVC (which is probably less disruptive than downgrading your version control system).

Subversion Browsing

What causes "Error: ImportError: No module named svn"?

ViewVC uses Subversion's Python bindings to interact with and pull information out of your Subversion repositories. These bindings are not, however, generally provided as part of the ViewVC distribution — you have to install them yourself some other way. (For more information, contact the Subversion community.) The error you see is Python being asked to import the Subversion Python bindings and being unable to do so, typically because the bindings modules aren't found in the Python library search path.

Can I use ViewVC with remote Subversion repositories?

ViewVC prefers to have direct access to the repository (and in fact, must have that for CVS repositories), but there does exist experimental support for remote Subversion repositories. Enabling this is a fairly simple — just use the URL of the repository where you would use its path in the svn_roots configuration options (sorry, you can't use root_parents for remote repositories because Subversion doesn't expose a repository-listing repository access API).

What you should expect:

  • Near parity with local-access Subversion in terms of functionality.

  • Known shortcomings:

    • file sizes aren't reported everywhere
    • the "revision" view lacks/botches some information
    • she ain't the fastest horse on the track…
  • Lack of configury for dealing with the intricacies of remote access. If the auth credentials and such you need to access the remote repository aren't cached in ~VIEWVC_USER/.subversion (where VIEWVC_USER is the system user as whom ViewVC runs), stuff won't work.