RCSgraph is a Python program written by Phil Frost to graph the revisions in a version control system and the merges between them. Currently it implements input via tla and output via graphviz, but care has been taken in the design to make it possible to implement input from other version control systems our output to other formats. (note: the "RCS" in the name is an acronym for "revision control system" and does not denote a relation to the RCS, a specific implementation of a RCS.)

Many will wonder why RCSgraph will not work with CVS or Subversion. CVS provides no tracking of merges, so it is impossible to obtain the information to generate a graph of the merges. To the author's knowledge, the same is true of Subversion. If this is not so, please let him know. However, there exist a number of lesser known programs that do provide this capability, and rumor has it that Subversion might too do this some day.

The primary design goal of RCSgraph was to produce readable graphs. RCSgraph goes through much effort to prune superfluous information from the graph so that viewing large projects with hundreds of developers is possible. A number of command-line options control what information is displayed. By using RCSgraph as a Python library it is possible to exert even more control over the output.

Several example graphs are available. Be careful; many of them are extremely large and exhaust your virtual memory after thrashing for a long while if not handled carefully. If you use gv to view them, use the -scale -16 option, or set the zoom to minimum in the UI before opening the file.

The program source is available as a tarball or from the author's tla archive indigo@bitglue.com--2004 at http://unununium.org/~indigo/archives/2004/.