CvsGraph 1.6.0, 18-Dec-2005
===========================
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 all numeric author ID

- Changed acceptable mail policy. See below in this file

- Fix incomplete parsing of access keyword in rcsfile

- Fix missing branch_bgcolor in manpage

- Fix author names with spaces but not in @ encapsulation

- Added multiple merge_{from,to,color} matching. Now several regex
  combinations are allowed to run concurrently.

- Added dynamic colors and strings for more flexibility in visual
  representations of the tree.

- Added keyword rev_idtext to define the revision ID in a revision
  box. Normally this would show the revision number, but can now be
  changed dynamically.

- Fix dashed lines when stripped revisions have mergepoints attatched



Compiling
---------

create directory:
	$ cd /where/ever/you/want
	$ tar xzf cvsgraph-1.6.0.tar.gz
	$ cd cvsgraph-1.6.0
	$ ./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.

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

