CvsGraph 1.4.1, 16-Jul-2004
===========================
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
-------------------

- Fix a longstanding date-bug in showing local time. Now timezone is accounted
  for.

- Fix the CVSNT habbit of adding info to the tag in symbols. The trailing data
  is skipped for now. I might use it later on; it contains a date and comments
  on tags.

- Fix the author recognition for CVSNT with broken rcsfile(5) format. This
  might not be a total remedy, but should fix some.

- Fix XHTML <br> to be <br /> and add HTML-izing '&' to &amp; and '"' to &quot;

- Fix execution flags of regexec().

- Fix the sizeof(void *) vs sizeof(int) problem. Now look for int, long and
  long long in configure.

- Add the arrow patch and adapted to be more configurable.

- Fix manual page typo. Documentation and other aesthetic related fixes.


Many thanks for patches to (in no particular order and sorry if I missed your
name in the list):
	Haroon Rafique <haroon.rafique@utoronto.ca>
	Jason Corley <jason.corley@borland.com>
	Mark Brown <broonie@sirena.org.uk>
	Morten Sylvest Olsen <mso@medical-insight.com>

And, of course, thanks to all others who send me feedback!



Compiling
---------

create directory:
	$ cd /where/ever/you/want
	$ tar xzf cvsgraph-1.4.1.tar.gz
	$ cd cvsgraph-1.4.1
	$ ./configure
	$ make

This should do the trick and you have an executable file 'cvsgraph' in the
current directory.

NOTE:	The GD library is required for CvsGraph to function. Get it from
	http://www.boutell.com, compile it and use either --with-gd-lib=DIR
	and --with-gd-inc=DIR to specify its location. You might also have
	to use --with-z-inc, --with-z-lib and --with-png-inc, --with-png-lib
	for gd versions 1.6 and higher.
	If you build with static libgd (i.e. libgd.a) and already have
	libpng.so and/or libjpeg6b.so (i.e. dynamic), then you might want to
	try to trick configure into adding these libs to the tests by adding
	commandline options '--with-png-lib=.' and '--with-jpeg-lib=.'.
	If you have linked libgd with freetype, then you might also need
	either --with-freetype-lib or --with-freetype2-lib.



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. The easiest way is to get the ViewCVS package from their website
at http://viewcvs.sourceforge.net and follow the instructions.

Alternately, you can hack the 'cvsweb' package to call CvsGraph. There are
several scripts and patches available from the CvsGraph homepage (see below for
address). However, the scripts are no longer maintained because ViewCVS has
native support now.

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.



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.

- draw only a part or parts of the tree.



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

Greetings Bertho

