SYNOPSIS
. commitlog2cvsweb [--cvsweb=URL] [--urlsuffix=SFX] [--branch=TAG]
[--showallbranches] [--outfile=FILE] [--committer=PATTERN] [--and]
[--insensitive] [--logmessage=PATTERN]... [--link-committers]
[--queryprcgi=URL] [--number-commits] [--maximum=NUM] [--sort-argu-
ments] commitlog-file...
. commitlog2cvsweb --version
DESCRIPTION
The commitlog2cvsweb program takes one ore more commitlog files and
converts them into HTML. The commitlog files are usually stored under
/home/ncvs/CVSROOT/commitlogs/ and can be retrieved by cvsup-ing the
cvsroot-common and cvsroot-src collections in CVS mode. (See cvsup,
http://www.FreeBSD.org/doc/en/books/handbook/cvsup.html and "EXAM-
PLES".)
The generated HTML has hyperlinks to the "cvsweb.cgi" script. This
means you can click on any of the changed files and see the CVS log
(change history) and have access to all the revisions and deltas.
(The CGI script "cvsweb.cgi" was originally written by Bill Fenner
<fenner@freebsd.org> for the FreeBSD project. It allows browsing of
CVS-repositories with a HTML-browser. CVS is a popular version control
system. "cvsup" is written by John Polstra <jdp@polstra.com>. It is a
network distribution package for CVS repositories.)
Options may be abbreviated to a unique prefix. The options are as fol-
lows:
--cvsweb=URL
Specify URL of cvsweb.cgi script. Default:
http://cvsweb.FreeBSD.org/
--urlsuffix=SFX
Specify some extra information for appending to generated URLs.
(You should not type a leading "?" or "&" character because it will
be added automatically.)
--branch=TAG
Output only commit messages from branch TAG.
--showallbranches
Tell "cvsweb.cgi" that you want to see file revisions on all
branches. The default behaviour is to show only revisions on the
branch selected with "--branch".
--outfile=FILENAME
Specify the output file. If no output file is specified standard
output is used.
--committer=PATTERN
Output only commits matching all logmessage patterns (AND). The
default is to output commits matching any pattern (OR).
--insensitive
Ignore case when matching logmessage patterns.
--link-committers
Add hyperlinks to committers previous/next commit.
--number-commits
Sequentially number all commits. (Numbering is done on a per file
basis.)
--queryprcgi=URL
Use URL to query problem reports. Default:
http://www.FreeBSD.org/cgi/query-pr.cgi
--maximum=NUM
Output at most NUM commits per input file.
--body-attributes=ATTRIBUTES
Specify attributes for the html BODY tag.
--noheadfoot
Suppress output of HTML, HEAD and BODY tags. This is for including
the output into another HTML file.
--from=DATE
Output only commit messages made after DATE. Options "--after" and
"--since" are aliases for "--from".
--to=DATE
Output only commit messages made before DATE. Options "--before"
and "--upto" are aliases for "--to". If DATE does not contain a
timezone then the date is interpreted according to the local time-
zone. Check Time::ParseDate for supported date/time formats.
--nofileheaders
Do not emit H1 tags for each input file.
--commitlogdir=DIR
Look for commitlogfiles in DIR. (May contain shell wildcard charac-
ters.)
--sort-arguments
Arguments (input files) are processed in order of their modifica-
tion times. This is useful to process several commitlog files in
chronological order.
--version
Print version information and exit.
Only the first existing file is used.
EXAMPLES
Step1: Retrieving the commitlog files
As a first step you need to get commitlog files. Retrieve them with
cvsup(1). An example supfile is:
# Change the next line to use your nearest CVSup mirror site, check
# out http://www.FreeBSD.org/doc/en/books/handbook/cvsup.html
*default host=cvsup2.FreeBSD.org base=/usr prefix=/home/ncvs
*default release=cvs delete use-rel-suffix
# If you have a slow network link, uncomment the following line!
#*default compress
# Next two lines will fetch/sync the commitlogs of /usr/src only.
# If you are interested in doc/ports/projects too then you will
# need "cvsroot-all" instead of only -common and -src.
#cvsroot-all
cvsroot-common
cvsroot-src
Store this as file cvsroot-supfile and run cvsup:
"cvsup -i CVSROOT\*/commitlogs cvsroot-supfile"
This will retrieve all commitlog files. That is some 32 MiB as of June
2006. If you are not interested in old logs use a refuse file as
described in cvsup or a more selective "-i" option in the above command
line example.
Step2: HTMLizing with commitlog2cvsweb
To check what was going on in the area of FreeBSD kernel development
since last monday run this command:
"commitlog2cvsweb --since "monday 0:00" -o sys.html
/home/ncvs/CVSROOT/commitlogs/sys"
and open sys.html.
To see all kernel commits mentioning "sound" or "pcm" dating from the
year 2006 run:
"commitlog2cvsweb --since 2006-01-01 --before 2007-01-01 -o
sound2006.html -i --log sound --log '\bpcm\b' --sort /home/ncvs/CVS-
ROOT/commitlogs/sys*"
Note how "\b" (word boundary) was used to avoid matching "pcmcia"!
BUGS
This implementation is too slow.
perl v5.8.8 2006-06-22 COMMITLOG2CVSWEB(1)
Man(1) output converted with
man2html