The cvsweb package allows users to browse the revision history of a CVS tree with a web browser. It is a single file written in the perl scripting language and installs using the CGI mechanism supplied by most web servers.
The most appropriate mailing list is info-cvs which also covers CVS itself in addition to cvsweb. To subscribe send mail to email@example.com. Traffic has been something like 5-10 messages per day.
The newsgroup for cvsweb (and other bug tracking and version control systems) is comp.software.config-mgmt.
There is a packaged version of cvsweb as part of Cyclic Gallery for Linux, both on CD-ROM and for download. This includes both the original cvsweb from Bill Fenner ("cvsweb"), and the enhanced cvsweb from Henner Zeller ("hencvs"). The cvsweb package contains the "nogzip" and "dollar" patches mentioned below.
See the cvsweb page from Bill Fenner, the author of cvsweb.
When cvsweb 1.0 sends entire files, it compresses them with gzip, which is not supported by all web browsers. This patch just sends uncompressed files, which makes it work with most browsers but which of course will tend to use more network bandwidth. It can probably be considered official in the sense that the latest FreeBSD development sources for cvsweb contain such a change.
This patch allows cvsweb to operate on files whose names contain '$'.
Here is a patch to add "cvs annotate" functionality to cvsweb 1.0. The implementation of that patch is all wrong; you are better off with Henner Zeller's hencvs, which has annotate as of Oct 1998, or Bonsai, which also has annotate ("cvsblame").
Here are some ideas for new cvsweb features. The descriptions are somewhat sketchy; feel free to ask Jim Kingdon if you are having trouble making sense of them.
- upload entire files (or directory trees?). Form-based? PUT? etc? (Is this based soley on HTTP authentication or does auth (e.g. HTTP) interact with readers/writers/etc? Implementation detail: does cvsweb try to check things like readers, or does it get CVS to check for it somehow or what?). Is there any hot-link style technology which is interesting here (I don't know much about it...) - Form-based edit of document (for FAQ-O-Matic-style applications, but works on any text files). Of course binary documents want more of an upload interface. - understand branches "?branch=foo" "?branch=HEAD" shows revisions only on that branch. Picks which files to show based on that ("nonexistent files" or "deleted files" or some such instead of "Attic"; I guess semantics would be analogous: file shows up there iff the head revision on that branch is dead). Some/all of this is implemented in the version of cvsweb from FreeBSD-current mentioned below. - Some nice way to browse head revisions (e.g. "_log_ _head_" to the right of the filename. Click on log to get the log (the current behavior for clicking on the filename) or on head to get the head revision. This sort of goes together with lxr (linux cross-ref) type stuff. Or this might be a separate screen ("log directory" where clicking on filenames gets logs, vs. "head directory" where clicking on filenames get heads). - Show changes in last ___ days (diffs and/or logs). - Show recent changes (last 20 log entries, or whatever; then a link for older changes (cutoff in "?foo" would be a date, I guess)). - Think a little bit about how this functions as groupware? Do people need to keep leaning on "reload" (e.g. in a meeting)? Do some of the push/etc extensions to HTTP/HTML help?
Martin Cleaver's cvsweb is available; it features capabilities for file upload as well as file browsing.
The latest and greatest (potentially experimental) cvsweb from FreeBSD is available in FreeBSD-current. Click here for a demo of the branch features in this version.
Henner Zeller's cvsweb has a few enhancements, for example the ability to see a directory listing, which directly shows the latest revision and log message for each file.
Here are versions of cvswebedit from Jan 1998 and Feb 1998; for the most up to date version see Martin Cleaver's site mentioned above.