B.2. Distribution Tools
Often, you may want to develop a CVS project and publish the files for display or download. You can publish the resulting files with a build script or a script in one of the CVSROOT files. Alternatively, you can use one of the tools in this section, all of which display CVS project files.
Some of the tools in this section display the repository; others export files from the repository for publication. Some retrieve the difference between the revision they have and the latest revision in the repository, then patch the revision they have and display the final files.
Chora provides the ability to view or download the files in a CVS repository using a web browser. It integrates with the other web tools available at http://www.horde.org. The CVS integration is stored in a single library, so you can customize the rest of the display.
In file mode, every revision of a file is displayed along with log messages, and you also have the ability to display the differences between revisions. Chora has a nifty branch visualization tool, as well. Chora is available from http://www.horde.org/chora/.
CVSup is a tool for distributing files across a network. It can be used with most file types and understands CVS project files. If desired, it can use zlib compression to reduce network load.
If CVSup is working from CVS files, it distributes the differences rather than the files as a whole, saving bandwidth and minimizing the network load. It also understands tags and distributes specific tagged versions if configured to do so.
Note that in CVS 1.12.1 and later, the environment variable $CVS_LOCAL_BRANCH_NUM is available to support local branching. CVSup is available from http://www.cvsup.org.
This tool publishes CVS files using FTP. It was developed for web sites that use CVS for content management, but for which the administrator of the server requires that updates be made using the FTP protocol.
CVSviaFTP does not start an FTP session automatically; it needs to be wrapped in a script that manages login and other specifics of your FTP site. However, it is useful when you are managing content across an FTP link. CVSviaFTP is available from http://www.siber.org/cvs-via-ftp/.
CVSweb is one of several tools that allow a CVS repository to be accessed using a web browser. It allows only viewing or downloading, not the ability to change files.
CVSweb allows you to view a directory, an individual file, any revision of a file, the difference (as reported by the diff command) between the current and previous revisions, or an annotated view of a file. CVSweb is available from http://www.freebsd.org/projects/cvsweb.html.
B.2.5. jCVS Web (Formerly jCVS Servlet)
jCVS Web is a configurable Java implementation of the CVS protocol, and comes with several client applications as well as a Java API (application program interface). For Java programmers, it provides access to a CVS repository within Java. For others, it includes a Java-based graphic client, and a CVS repository browser that operates from a web browser. jCVS Web is available from http://www.jcvs.org.
SandWeb is one of several tools that allow a CVS repository to be accessed using a web browser. It currently works with CVS, but Subversion support is intended in the future.
SandWeb is more than a viewer; it provides the ability to add, delete, and edit text files, and it commits the changes automatically. In time, it may become an effective HTML client for CVS. SandWeb is available from http://sandweb.sourceforge.net.
ViewVC started out as a modification of CVSweb, and is another web-based repository browser. It has since been developed into quite a sophisticated tool, and supports both CVS and Subversion.
ViewCVS requires Python, and can require other programs, depending on what additional features you want (MySQL, GNU enscript, CvsGraph and the Apache HTTP Server at present). ViewCVS is available from http://www.viewvc.org.
Wandisco is more than a distribution toolit's a mirroring tool, a proxying system, and a backup system. It provides the ability to use local repositories as if they were one connected global repositoryand one (or more) of those repositories can be designated as a backup. Wandisco is available from http://www.wandisco.com.