CvsGraph 1.5.1, 23-Oct-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
-------------------

- Add patch from Henrik Carlqvist <henca@users.SourceForge.net>
	* add option rev_hidenumber for disabling revision number display.
	* add option tag_ignore_merge for disabling merge_from/merge_to display
	  if matched with tag_ignore.
	* add resorting of branches on how many revisions they have. This saves
	  space under circumstances.

- Add option merge_findall so that merge_from/merge_to tags can have multiple
  matches.

- Add the patches supplied by Ville Skytta <ville.skytta@iki.fi>
	* fix spelling in the manpages and config file
	* fix & -> &amp; problem in config
	* fix generics in wrapper example

- Add a fix for the zimezone problem as suggested by Henrik Carlqvist
  <henca@users.SourceForge.net> by using the environment.

- Fix a bug in the detection of branch-numbers in the logical ,v file structure
  (reported by Daniel Dumitrache <ddumitrache@bitdefender.com>). The branch was
  deduced from the revision, but that would fail for revision numbers that are
  like magic branch-numbers (x.x.0.x) because they were interpreted. These
  revision numbers are now correctly handled.

- Added patch from Gordon Hollingworth <Gordon.Hollingworth@TTP.com> to use
  mergepoints as implemented by CVSNT. Adapted the patch to enable both
  tag-detected merges and mergepoints to be shows at the same time.

- Implement selection of png compression level with image_compress and enable
  interlacing (progressive load) for both png and jpeg images with
  image_interlace.



Compiling
---------

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

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

Greetings Bertho

