README
1$FreeBSD: projects/cvsweb/README,v 1.7 2005/09/25 20:21:38 scop Exp $
2$Idaemons: /home/cvs/cvsweb/README.knu,v 1.9 2001/01/13 07:48:09 knu Exp $
3
4FreeBSD-CVSweb is a WWW interface for CVS repositories.
5
6CVSweb was originally written by Bill Fenner and improved by Henner
7Zeller, Henrik Nordstr�m, and Ken Coar, then Akinori MUSHA brought
8it back to FreeBSD community and made further improvements. Ville
9Skytt� has continued that work.
10
11To track the development, access the MAIN branch of the module
12`projects/cvsweb' in the FreeBSD CVS repository. For legacy 2.x
13versions, see the branch named 'rel-2_0-branch'.
14
15 Project home page:
16 <http://www.FreeBSD.org/projects/cvsweb.html>
17
18 Repository access:
19 <http://www.FreeBSD.org/support.html#cvs>
20
21 CVSweb of CVSweb:
22 <http://www.FreeBSD.org/cgi/cvsweb.cgi/projects/cvsweb/>
23
24 Release archives:
25 <http://people.FreeBSD.org/~scop/cvsweb/>
26 <ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/scop/>
27
28 Mailing list:
29 <freebsd-cvsweb@FreeBSD.org>
30 <http://lists.freebsd.org/mailman/listinfo/freebsd-cvsweb>
31 <http://www.FreeBSD.org/doc/handbook/eresources.html#ERESOURCES-SUBSCRIBE>
32
33Here is the list of added features over Zeller's version:
34
35o Customizable "show functions" option
36 You can specify a regexp for each file type to teach rcsdiff(1) to
37 recognize function lines.
38
39o Customizable PR categories
40o Move $prcgi to cvsweb.conf
41 Now each repository can have its own PR categories and
42 query-pr.cgi URL, which can be defined in cvsweb.conf-${cvstree}.
43 It is useful when you have such as NetBSD and/or OpenBSD
44 repositories.
45
46o Improved support for text-based browsers
47 Unidiff is the default format for diffs, for text-based browsers.
48
49o Enhanced PR # hyperlinking.
50 The following styles are supported.
51
52 PR: 12345, 67890, ..
53
54 PR: #12345, #67890, ..
55
56 PR# sparc/12345, i386/67890
57
58 PR: ports/43210
59 kern/98765
60
61 .. is related to bin/4567, which is ...
62
63o Manpage hyperlinking.
64 Both `cat(1)' and `cat.1' styles are supported.
65
66o Revision numbers hyperlinking in annotation.
67
68o Automatic tarball generation. (Obtained from Debian)
69
70o Automatic zipball generation.
71
72o Customizable repository entry order.
73
74o Location text field.
75
76o Support for the use of localized charsets.
77
78o Workaround for buggy web servers.
79
80o Numerous bugfixes regarding URI/filename manipulation.
81
82o HTML improvements, XHTML 1.0 Transitional, and a separate CSS file for
83 presentation.
84
85o Security fixes to let it work under perl -T.
86
87o Annotate works under mod_perl and against a read only repository.
88
89o CvsGraph <http://www.akhphd.au.dk/~bertho/cvsgraph/> integration.
90
91o Syntax highlighting using GNU Enscript <http://www.iki.fi/~mtr/genscript/>.
92
93o CVSHistory <http://www.jamwt.com/CVSHistory/> integration.
94
95o Line number output for HTMLized views.
96
97o Support for showing README.cvs.html and README.cvs akin to Apache's
98 FancyIndexes.
99
100o Support for external diff tools.
101
102o Works with mod_perl >= 1.99_11 as well as 1.2x.
103
104o ...and much more! See NEWS for high level changes between releases.
105
106See also README, as well as TODO for new features under consideration
107and development.
108
109-------------------------------------------------------------------------------
110The original Zeller README follows (possibly outdated to some extent):
111-------------------------------------------------------------------------------
112
113The cgi-script cvsweb.cgi is written by Bill Fenner <fenner@freebsd.org>
114(see [1]) for the freebsd project. It allows browsing of
115CVS-repositories (see [2]) with an HTML-browser.
116
117This version is based on Bill's script and is hacked to fit our needs,
118so don't blame him if anything doesn't work ..
119
120Added features:
121 - a colored side by side diff
122 - easier navigation
123 - mime-type aware checkout which allows for browsing
124 of version controlled HTML-pages
125 - easier configuration - everything configurable is in one
126 external file now
127 - added cvs-annotate - this requires cvs >= 1.9
128 (tested with cvs 1.10)
129 - a better way of viewing timestamps: they're shown as age
130 (something like 'changed 2 days 4 hours ago')
131 - sorting by filename / age - just click on the corresponding
132 column
133 - urlencodes all filenames so files with spaces and special
134 characters in their names are viewable as well.
135 - selectionbox for choosing different CVS-roots
136 - overview of last revisionnumber, age and logentry in the
137 directory view
138 - you can check out the current revision of a file if you are
139 in the directory view (idea from Nick Brachet)
140 - gzip'ed output if the browser accepts this; this can reduce the
141 size (and download time) by a factor of 4 (directory view) to
142 10 (colored diff; the size of the colored diff could be reduced
143 with CSS .. anyone ?). The use of gzip has been in the very first
144 version of cvsweb (by Bill Fenner), but has been removed because
145 it wasn't easy to determine if a browser actually understands it. Today
146 the browsers state if they accept the Content-encoding gzip..
147 .. but MSIE lies about this (so cvsweb disables gzip-encoding in this
148 case).
149 - Tag based browsing. An easy and what I think intuitive way to browse a
150 CVS tree based on tags, with filtering of files and CVS logs to only
151 show whats relevant for the selected tag.
152 - "Pretty-printed" checkouts for text based files. My intention is to
153 eventually add cross-referencing to this, but for now the file is only
154 converted to HTML with automatic detection of various links.
155 - "Click-on-version" diff selection.
156 - sorting for every column now
157 - uses 'cvs co' for checkout instead of rcs co
158 - Ability to show directory descriptions from CVSROOT/descriptions
159
160cvsweb.cgi became quite huge now and is bad style code (I am not a
161perl-programmer - this is what I do in my spare time!) so this
162should be rewritten.
163
164I'd propose a Java-servlet which could use the C/S-protocol .. anyone ?
165
166And what about using mod_perl, and rewriting it into a set of proper Perl-5
167modules?
168
169This software is distributed under the terms of the BSD-licence.
170
171You can download the latest version at
172 <http://stud.fh-heilbronn.de/~zeller/cgi/cvsweb.cgi/>
173
174or get it directly with cvs at
175 CVSROOT: :pserver:anonymous@cvs.stud.fh-heilbronn.de:/cvsroot/public
176 Password: anonymous
177 Module: cvsweb
178
179Please send suggestions, bugs etc to
180 Henner Zeller <zeller@think.de>
181or
182 Henrik Nordstrom <hno@hem.passagen.se>
183
184-- refs
185[1] for the original Version of cvsweb.cgi, see
186 <http://www.freebsd.org/~fenner/cvsweb/>
187[2] for cvs, see <http://www.nongnu.org/cvs/>
188
189--
190Ville Skytt� <scop@FreeBSD.org> -- The FreeBSD Project
191