CvsGraph 1.7.0, 21-May-2008 =========================== CvsGraph creates a graphic representation of the revisions and branches in a cvs/rcs repository. CvsGraph is inspired on the 'graph'-option from WinCVS. I could not find something right away on the web and decided that it was time to write a stand-alone version. I might have been doing some double work, but hey, I like a hack. New in this version ------------------- - Do a better job at drawing the merge lines by selecting the shortest path from the revision boxes. An analysis is now done whether the source and destinations should be on the left or right side. - Fix the left_right case for merge lines to display correctly. - Fix a +/-1 error on the merge lines to account for both rounding errors and the shadow of the revision boxes. - Add configuration option 'merge_on_tag' to force the left_right case to display merge lines on the tags instead of on the top/bottom sides. This also solves imagemap overlaps where multiple sources or destinations would be displayed at the same position. - Fix the imagemap function to record the correct position of the merges. - Use automake - Streamline the package with patches from the Fedora RPMS Compiling --------- create directory: $ cd /where/ever/you/want $ tar xzf cvsgraph-1.7.0.tar.gz $ cd cvsgraph-1.7.0 $ ./configure $ make This should do the trick and you have an executable file 'cvsgraph' in the current directory. There are often precompiled binaries for Linux, FreeBSD, NetBSD and Windows (and probably other OSes too). Check your local mirror for details. I also have some links on the homepage for precompiled binaries. Please do not complain to me about these binaries. Installing ---------- Put the executable file 'cvsgraph' somewhere where you think it should go. Normally this would be "/usr/local/bin" or "/usr/bin". The configuration file ought to be put in "/usr/local/etc" or "/etc". The exact position can be overriden on the commandline anyway. Edit the configuration file to your liking and you should be all set. Running CvsGraph ---------------- Do *NOT* execute the program directly from a webserver. Direct execution would be very insecure. Make a wrapper cgi-script in php, perl, or whatever you normally use. There are several web-based viewers with CvsGraph support: - ViewCVS http://viewcvs.sourceforge.net - CVSweb http://www.freebsd.org/projects/cvsweb.html - Chora http://www.horde.org/chora/ To generate an image do something like: $ cvsgraph -r /home/to/repository -m module -o mygraph.png myfile.c,v This generates a revison/branch image of the rcs file 'myfile.c,v' and puts it into 'mygraph.png'. The '-r' option is the path to the repository *located and accessible* on your filesystem. The '-m' is the module in the repository. Note that the extension of the file ends with ",v". Just to make it clear: You cannot make images from a cvs-repository over the internet as if you were using cvs. The repository files must be on a locally mounted filesystem. However, you can use cvsup or rsync to get a repository to your local filesystem and make then images from there. Type 'cvsgraph -h' to get a full list of options. If the output is not given (no '-o'), then the output is written to standard output. Please read the manual pages cvsgraph(1) and cvsgraph.conf(5) for more information on execution and configuration. Contributed code ---------------- - contrib/automatic_documentation: If you are interested in tag-management with respect to the correct branch information, then I suggest that you take a look at the contribution from Henrik Carlqvist. He submitted some server-side scripts that can manage tags in a better fashion than cvs on its own. Todo ---- - do a better job in making a layout (auto moving branches and rubber banding revision-connectors to make place). A start is made, but this is not very functional yet. License ------- CvsGraph is distributed under GNU GPL v2. See 'LICENSE' for more information. Contact ------- HomePage: http://www.akhphd.au.dk/~bertho/cvsgraph E-mail: cvsgraph@akhphd.au.dk Mailnote -------- As of 20 August 2005, if you send me an email with a contained or attached disclaimer that includes one or more of the following items: * legal notice or threat(s) * disclosure restriction(s) * forward restriction(s) * "intended recipient" nonsense Then you automatically agree to pay me a license fee of DKK 1000,- for using my email address and a DKK 250,- fee for wasting my time on reading it. Greetings Bertho