Introduction
CVSweb is a WWW interface for CVS repositories with which you can browse a file hierarchy on your browser to view each file's revision history in a very handy manner.
Installation
# Web interface for CVS repositories yum install cvsweb # Runtime Logging for C++ yum install rlog # Revision Control System (RCS) file version management tools yum install rcs # CVS/RCS repository grapher yum install cvsgraph # A plain ASCII to PostScript converter yum install enscript
Configuration: Repository
Update the repository setting in CVSweb configuration file:
vi /etc/cvsweb/cvsweb.conf
@CVSrepositories = ( 'local' => ['Local Repository', '/var/cvs'], # 'freebsd' => ['FreeBSD', '/var/ncvs'], # 'openbsd' => ['OpenBSD', '/var/ncvs'], # 'netbsd' => ['NetBSD', '/var/ncvs'], # 'ruby' => ['Ruby', '/var/anoncvs/ruby'], );
Configuration: Web Server
CVSweb is a cgi program runs on Apache, the Apache configuration should configuration similar to this:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
Make sure the CVSweb cgi is place in the path specify in ScriptAlias.
Configuration: Syntax Highlighter
The syntax highlighter works if enscript package is installed. CVSweb keep the enscript configuration in /etc/cvsweb/cvsweb.conf.
The following example specify Delphi as syntax highlighter for pascal (.pas) file.
vi /etc/cvsweb/cvsweb.conf
%enscript_types = ( 'ada' => qr/\.ad(s|b|a)$/o, 'asm' => qr/\.[Ss]$/o, 'awk' => qr/\.awk$/o, 'bash' => qr/\.(bash(_profile|rc)|inputrc)$/o, 'c' => qr/\.(c|h)$/o, 'changelog' => qr/^changelog$/io, 'cpp' => qr/\.(c\+\+|C|H|cpp|cc|cxx)$/o, 'csh' => qr/\.(csh(rc)?|log(in|out)|history)$/o, 'elisp' => qr/\.e(l|macs)$/o, 'fortran' => qr/\.[fF]$/o, 'haskell' => qr/\.(l?h|l?g)s$/o, 'html' => qr/\.x?html?$/o, 'idl' => qr/\.idl$/o, 'inf' => qr/\.inf$/io, 'java' => qr/\.java$/o, 'javascript' => qr/\.(js|pac)$/o, 'ksh' => qr/\.ksh$/o, 'm4' => qr/\.m4$/o, 'makefile' => qr/(GNU)?[Mm]akefile(?!\.PL\b)|\.(ma?ke?|am)$/o, 'matlab' => qr/\.m$/o, 'nroff' => qr/\.man$/o, 'delphi' => qr/\.p(as|p)?$/io, 'perl' => qr/\.p(m|(er)?l)$/io, 'postscript' => qr/\.e?ps$/io, 'python' => qr/\.py$/o, 'rfc' => qr/\b((rfc|draft)\..*\.txt)$/o, 'scheme' => qr/\.(scm|scheme)$/o, 'sh' => qr/\.sh$/o, 'skill' => qr/\.il$/o, 'sql' => qr/\.sql$/o, 'states' => qr/\.st$/o, 'synopsys' => qr/\.s(cr|yn(th)?)$/o, 'tcl' => qr/\.tcl$/o, 'tcsh' => qr/\.tcshrc$/o, 'tex' => qr/\.tex$/o, 'vba' => qr/\.vba$/o, 'verilog' => qr/\.(v|vh)$/o, 'vhdl' => qr/\.vhdl?$/o, 'vrml' => qr/\.wrl$/o, 'wmlscript' => qr/\.wmls(cript)?$/o, 'zsh' => qr/\.(zsh(env|rc)|z(profile|log(in|out)))$/o, );
Using CVSweb
Launch your favorite web browser and navigate to
http://<cvs-host>/cgi-bin/cvsweb.cgi
Troubleshoot: CVS folders doesn’t show up
The CVS folder specify in local repository of cvsweb.conf may not have appropriate access permission for cvsweb.cgi. You may use the following command to change the folder permission:
chmod o+rx <cvs-folder>
Troubleshoot: Encounter permission denied when browse a CVS tree
A CVS repository tree may contain arbitrary levels of folder. The tree may not have appropriate access permission for cvsweb.cgi. You may use the following command to change all the sub folders found in CVS repository:
find . -type d -exec chmod o+rx '{}' \;
Reference
- FreeBDS CVSweb Project. URL: http://www.freebsd.org/projects/cvsweb.html
No comments:
Post a Comment