File: README

package info (click to toggle)
cvsgraph 1.4.0-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 376 kB
  • ctags: 458
  • sloc: ansic: 3,921; yacc: 372; lex: 183; makefile: 79; php: 42; sh: 14
file content (151 lines) | stat: -rw-r--r-- 5,925 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
CvsGraph 1.4.0, 17-Mar-2003
===========================
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 warnings in readconf on some 'older' compiler systems.

- Implement new option to generate proper maps for different levels of HTML.
  The option -x[34x] determines HTML 3.x (default), HTML 4.x or XHTML style
  maps.

- Implement a scheme to visualize merges based on tag names. If tags are
  consistently named at the mergepoint and the destination, then these points
  can be detected using regular expressions. Several new configuration
  options, merge_*, describe the tags.

- Implemented HTMLizing of expansion with %(...%). This prevents a possible
  cross site scripting exploit when you use '<', '>' or '"' in tagnames.
  This is a remote chance (you must be stupid to use these characters in a
  tagname) but anyway, your system can be under attack.

- Fixed backing up in the lexer. This improves speed slightly because no
  rule requires lookahead over one character anymore.

- Fixed a bug in the initial placing of left to right displaying.

- Half-fixed a bug in the kerning code, where a loop-safeguard was triggered
  way too soon (at 100 iterations). This has now been changed to 10000, but
  should be dependent on the number of drawable branches, as the function is
  _at least_ order O(N^2). However, more analysis is required to ensure
  safe guarding under all circumstances.

- Implemented folding of empty branches. Many uses of CVS create many
  branches on the same revision but have no commits on them. This occurs
  often with stable files like .cvsignore files and the like. A new
  configuration option branch_fold enables imaging consequtive brances
  with no commits in the same branch-box. This reduces images by a huge
  factor (28000x1700 -> 2100x2300, i.e. a factor of 10). It also speeds up
  drawing considerably. The branch_fold option is *on* by default.

- Fix duplicate branch-boxes (branch_dupbox=true). No duplicates should be
  created if there are no commits on a specific branch. There is no reason
  for having two boxes on top of each other.

- Implement folding for all branches on the same branchpoint if empty. New
  option branch_foldall controls this behavior. See cvsgraph.conf(5) for
  details. The imagemap is configured to map all branches within the box.



Compiling
---------

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



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