| 12
 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
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 
 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
  <head>
    <title>ViewCVS: Viewing CVS Repositories</title>
  </head>
<!-- Editors: Please keep all links to external sites in italics. -->
<body background="images/chalk.jpg">
  <table width="100%" cellspacing=5>
    <tr>
      <td width="1%"><img border=0 src="images/logo.png"></td>
      <td>
	<h1>ViewCVS: Viewing CVS Repositories</h1>
      </td>
      <td align=center valign=top bgcolor="white" width="1%">
	<b>Quickstart:</b>
	<a href="viewcvs-0.9.2.tar.gz">download</a>
      </td>
      <td width="1%"><a href="http://sourceforge.net/"><img border=0
	    src="http://sourceforge.net/sflogo.php?group_id=18760&type=1"></a><br><a href="http://sourceforge.net/projects/viewcvs/">ViewCVS project page</a>
      </td>
    </tr>
    <tr><td width="1%" valign=top>
     <h3>Links:</h3>
      <a href="http://viewcvs.sourceforge.net">Home</a><br>
      <a href="upgrading.html">Upgrading</a><br>
      <a href="contributing.html">Contributing</a><br>
      <a href="license-1.html">License</a><br>
      <a href="who.html">Who</a><br>
     <h3>Sections:</h3>
      <a href="#Features">Features</a><br>
      <a href="#History">History</a><br>
      <a href="#Mail">Mailing Lists</a><br>
      <a href="#Cvsweb">vs. cvsweb</a><br>
      <a href="#Download">Download</a><br>
      <a href="#Future">Future directions</a><br>
      <a href="#Colorize">Colorization</a><br>
      <a href="#OtherSoftware">Related Software</a><br>
    </td>
    <td colspan=3>
    <hr width="75%">
    <h2><a name="Features">Features</a></h2>
    <p>
      ViewCVS can browse directories, change logs, and specific
      revisions of files. It can display diffs between versions and
      show selections of files based on tags or branches. In addition,
      ViewCVS has "annotation" or "blame" support, Bonsai-like query
      facilities, template-based page generation, and support for
      individually configuring virtual hosts.
      It also includes support for
      <a href="http://www.akhphd.au.dk/~bertho/cvsgraph/"><i>CvsGraph</i></a>
      -- a program to display the tree of revisions and branches
      graphically.
    </p>
    <p>
      Currently, the functionality of ViewCVS surpasses that of cvsweb.
      See <a href="#Cvsweb">below</a> for a list of additional features.
    </p>
    <hr width="75%">
    <h2><a name="History">History</a></h2>
    <p>
      The ViewCVS software was inspired by
      <a href="http://stud.fh-heilbronn.de/~zeller/cgi/cvsweb.cgi/"><i>cvsweb</i></a>
      (originally written by Bill Fenner and then further developed by 
      <a href="mailto:zeller@think.de">Henner Zeller</a>).
      Greg Stein wanted to make some changes and updates, but cvsweb was
      implemented in Perl. He wrote: 
      <blockquote><i>While I can manage some Perl, cvsweb was
	 rather unmaintainable for me. So I undertook the 
	 task to convert the software to
	 <a href="http://www.python.org/">Python</a>. As a result, 
	 I've actually been able to go <em>way</em> beyond the simple
	 changes that I had envisioned.
      </i></blockquote>
    </p>
    <p>
      ViewCVS started as a port of the cvsweb script, but has had
      numerous cleanups and other modifications, based on some of
      Python's strengths. There is still some minor "badness"
      remaining from the Perl code, but Greg has been working on
      flushing that out, while adding new features.
    </p>
    <p>
      ViewCVS has been developed by the <a href="who.html">ViewCVS
	Group</a> and is made available under a
      <a href="license-1.html">BSD-type license</a>.
    </p>
    <p>
      ViewCVS requires <strong>Python 1.5.2</strong> or later (Python
      1.5.2 has been out for several years and is readily available for 
      your favorite operating system).
    </p>
    <hr width="75%">
    <h2><a name="Mail">Mailing Lists</a></h2>
    <p>
      If you have any comments, questions, or suggestions,
      then please send them to the
      <a href="http://mailman.lyra.org/mailman/listinfo/viewcvs"><i>ViewCVS
	mailing list</i></a>, which is also 
      <a href="http://mailman.lyra.org/pipermail/viewcvs/"><i>archived</i></a>. 
    </p>
    <p>
      A <a href="http://mailman.lyra.org/mailman/listinfo/viewcvs-dev"><i>mailing
	list for ViewCVS developers</i></a> is also available 
      (<a href="http://mailman.lyra.org/pipermail/viewcvs-dev/"><i>Archive</i></a>). 
    </p>
    <p>
      ViewCVS is an <a href="http://www.opensource.org/"><i>Open
      Source</i></a> project, and all
      <a href="contributing.html">contributions</a> are welcome.
    </p>
    <hr width="75%">
    <h2><a name="Cvsweb">Additional features over cvsweb</a></h2>
    <ul>
      <li>
        Template support: you can now customize the look and feel of
        ViewCVS by editing the provided EZT templates, which are used
        to generate the pages.
      </li>
      <li>
        Internationalization support: ViewCVS will parse and handle
        the Accept-Language request header, and can select different
        inputs for localized page generation.
      </li>
      <li>
	<a href="#Colorize">Colorization</a> for many file types via 
	<code>enscript</code>.
      </li>
      <li>
	Bonsai-like query features. (Requires MySQL and some other
	prerequisites)
      </li>
      <li>
	Annotation/blame viewing support against a <strong>read-only</strong>
	repository.
      </li>
      <li>
	Configuration on a per-virtual-host basis. This allows you
	to share the configuration file and ViewCVS installation
	across virtual hosts, yet still be able to fine-tune the
	options when necessary.
      </li>
      <li>
        Automatic generation of tarballs for the HEAD or a specified
        tag.
      </li>
      <li>
	Runs either as CGI script, called from an installed web server
	(such as <a href="http://httpd.apache.org/"><i>Apache</i></a>),
	or as a standalone server.
      </li>
      <li>
        Searching files for matches for a regular expression.
      </li>
      <li>Better reporting for unreadable files.</li>
      <li>
	More robust when given varying <code>rcsdiff</code> or
	<code>rlog</code> outputs.
      </li>
      <li>Hard breaks in human-readable diffs.</li>
      <li>
	The configuration file is optional (you can change the values
	right in the CGI script and avoid the config file, if you so
	choose). The config file syntax is also cleaner, since it is
	human-manageable rather than source code.
      </li>
      <li>
	Directories with a large number of files can be viewed.
      </li>
      <li>
        Support for browsing <a href="http://subversion.tigris.org/">Subversion</a> 
        repositories. <small>(requires Subversion's Python bindings)</small>
      </li>
      <li>
	<strong>Security</strong>: ViewCVS only requires read access
	to the CVS repository (not read/write). With the correct
	security partitioning, this means that even if ViewCVS were to 
	be subverted, your source code is safe. Further, ViewCVS does
	not use any <code>system()</code> or <code>popen()</code>
	calls, which are very susceptible to abuse.
	<br>
	<small>(cvsweb had a hole due to a popen() call)</small>
      </li>
      <li>
        Last but not least: it doesn't suffer from the "unmaintainable
	code effect" that hits most Perl projects sooner or later:  
	<blockquote><i>[Perl] combines all the worst aspects of C and Lisp: 
	  a billion different sublanguages in one monolithic executable.  
	  It combines the power of C with the readability of PostScript.</i>
					       -- Jamie Zawinski
         </blockquote>
       </li>
    </ul>
    
    <p>
      The changes present in each release are available in
      <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/viewcvs/viewcvs/CHANGES?rev=HEAD">ViewCVS's
      CHANGES file</a>.
    </p>
    <hr width="75%">
    <h2><a name="Download">Download</a></h2>
    <p>
      The software is available for download:
    </p>
    <blockquote>
      <a href="viewcvs-0.9.2.tar.gz">Version 0.9.2 of ViewCVS as a gzipped
      tar</a>
      <br>
      <a href="viewcvs-0.9.2.zip">Version 0.9.2 of ViewCVS as a ZIP
      file</a>
    </blockquote>
    <p>
      Of course the current development version is also available 
      through ViewCVS itself:
    </p>
    <blockquote>
      <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/viewcvs/">http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/viewcvs/</a>
    </blockquote>
    <p>
      You can also
      <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/viewcvs/viewcvs/CHANGES?rev=HEAD">see
      the changes</a> for this release.
    </p>
    <hr width="75%">
    <h2><a name="Future">Future features, directions</a></h2>
    <p>
    ViewCVS is a Open Source project.  So any future development depends
    on the contributions that will be made by its user community.  
    Certainly working patches have a greater chance to become realized 
    quickly than feature requests.  <i>But don't hesitate to submit your
	suggestions! Send mail to the
	  <a href="mailto:viewcvs@lyra.org">viewcvs@lyra.org</a>
	  mailing list or even better use the 
	  <a href="http://sourceforge.net/tracker/?func=add&group_id=18760&atid=368760">SF tracker</a>.
	</i>
    </p>
    <ul>
      <li>See the feature requests already submitted through
        the <a href="http://sourceforge.net/tracker/?atid=368760&group_id=18760&func=browse">SF feature request tracker</a>
      </li>
      <li>UI streamlining/simplification</li>
      <li>Integration with CVS checkin auto-mail scripts</li>
      <li>Tighter integration with the query features</li>
     <p>
    </ul>
    <p>
      And another longer term pet of Greg Stein:
    </p>
    <ul>
      <li>Integration with an indexer such as LXR</li>
    </ul>
    </p>
    <hr width="75%">
    <h2><a name="Colorize">Colorization of files</a></h2>
    <p>
      ViewCVS can make use of the <code>enscript</code> program to
      colorize files in the CVS repository. If <code>enscript</code>
      is present on your system, then set the
      <code>use_enscript</code> option in the
      <code>viewcvs.conf</code> configuration file to <code>1</code>. 
      If necessary,
      update the <code>enscript_path</code> option to point to your
      installation directory. ... That's it! Now, as you view files
      through ViewCVS, they will be colored.
    </p>
    <h3>Colorization of Python files</h3>
    <p>
      ViewCVS currently also comes with a builtin colorizer for Python
      source files. This may go away in a future version, given the new
      <code>enscript</code> support...
    </p>
    <p>
      Christophe Pelte suggested this feature: colorize Python source
      files using
      <a href="http://starship.python.net/crew/lemburg/SoftwareDescriptions.html#py2html.py"><i>py2html</i></a>
      (by Marc-Andrew Lemburg, based on
      <a href="http://starship.python.net/crew/just/code/PyFontify.py"><i>PyFontify</i></a>
      by Just van Rossum). I've added this feature to ViewCVS 0.3,
      along with a generalized plugin mechanism for custom coloring other
      types of files. See the instructions within the viewcvs.cgi for
      setting the <code>py2html_path</code> configuration variable if
      you want to use this feature.
    </p>
    <hr width="75%">
    <h2><a name="OtherSoftware">Related Software</a></h2>
    <p>
    Finally we compiled a list of links to related
    software projects that might be also of interest to you:
    <ul>
      <li>
      <a href="http://www.python.org/"><i>Python</i></a> : The programming
      language ViewCVS is written in.
      </li>
      <li>
      <a href="http://www.cvshome.org/"><i>CVS</i></a> : CVS is the 
      Concurrent Versions System, the dominant open-source 
      network-transparent version control system.
      </li>
      <li>
      <a href="http://www.cs.purdue.edu/homes/trinkle/RCS/"><i>RCS</i></a> : 
      Revision Control System; the backend to CVS.
      </li>
      <li>
      <a href="http://subversion.tigris.org/"><i>Subversion</i></a> : 
      a CVS-like open source version control system.
      </li>
      <li>
      <a href="http://www.apache.org/"><i>Apache</i></a> : A (The?) web server.
      </li>
      <li>
      <a href="http://people.ssh.com/mtr/genscript/"><i>enscript</i></a> :
      used to colorize code displayed from the CVS repository 
      (<a href="#Colorize">see above</a>).
      </li>
      <li>
      <a href="http://www.akhphd.au.dk/~bertho/cvsgraph/"><i>CvsGraph</i></a> :
      server side software used to display revisions graphically.  Called from
      ViewCVS.
      </li>
      <li>
      <a href="http://www.mysql.com/"><i>MySQL</i></a> : to create 
      and query a commit database.  To make use of it you also need:
      </li>
      <li>
      <a href="http://sourceforge.net/projects/mysql-python"><i>mysql-python</i></a> : 
      the Python language binding to access MySQL databases.
      </li>
      <li>
      <a href="http://cvsgrab.sourceforge.net/"><i>CVSGrab</i></a> :
      client software used to grab from a public repository using ViewCVS 
      and HTTP (useful if you are behind a firewall).
      </li>
    </ul>
    </p>
  </td></tr></table>
  <hr>
  <address><a href="mailto:viewcvs@lyra.org">ViewCVS Users Group</a></address>
<!-- Created: Fri Dec  3 02:51:37 PST 1999 -->
<!-- hhmts start -->
Last modified: Sat Jun 15 11:30:35 CEST 2002
<!-- hhmts end -->
  </body>
</html>
 |