git users might want to take a look at a git repository of cvsps which has some
bugfixes which the author of cvsps (and this website) is too lazy to merge into
his repo and release a new version. That page is at http://ydirson.free.fr/en/software/scm/cvsps.ht
This is the website for CVSps. CVSps is a command line utility for Linux
and other UNIX type operating systems.
If you are looking for information about Cobite, try our main page at
While cvs is a fantastic and widely
used revision control system, it has some gaps is its functionality.
CVSps attempts to fill one of those gaps.
To quote the README:
CVSps is a program for generating 'patchset' information
from a CVS repository. A patchset in this case is defined
as a set of changes made to a collection of files, and all
committed at the same time (using a single 'cvs commit'
command). This information is valuable to seeing the big
picture of the evolution of a cvs project. While cvs
tracks revision information, it is often difficult to see
what changes were committed 'atomically' to the repository.
If you don't know what cvs is, try
Everyone loves screen snapshots, so here's a sample of what the output
of CVSps looks like:
Date: 2002/07/11 19:50:46
[PATCH] Fix several pdc202xx problems
Misnaming of 20270 as 20268R
Failure of LBA48 on 20262
Incorrect speed detection because the old driver used host not drive side
PDC202xx handling for quirks in udma reporting off some drives
LBA48 for PIO mode
This snapshot shows the output of one patchset. This patchset is
taken from actual output when running against the BK->CVS 2.4 kernel tree.
You can see it tracks all
files changed, gives the pre- and post- revision numbers, and (when
applicable, not in this example) indicates what branch the patchset was on.
It is also possible to generate a diff of the patchset using CVSps. CVSps
essentially gives you the equivalent to tagging before and after each commit.
A description of the usage of cvsps tersely describes a lot of its features:
$ cvsps -h
Usage: cvsps [-h] [-x] [-u] [-z <fuzz>] [-g] [-s <range>[,<range>]]
[-a <author>] [-f <file>] [-d <date1> [-d <date2>]]
[-b <branch>] [-l <regex>] [-r <tag> [-r <tag>]]
[-p <directory>] [-v] [-t] [--norc] [--summary-first]
[--test-log <captured cvs log file>] [--bkcvs]
[--no-rlog] [--diff-opts <option string>] [--cvs-direct]
[--debuglvl <bitmask>] [-Z <compression>] [--root <cvsroot>]
-h display this informative message
-x ignore (and rebuild) cvsps.cache file
-u update cvsps.cache file
-z <fuzz> set the timestamp fuzz factor for identifying patch sets
-g generate diffs of the selected patch sets
-s <patch set>[-[<patch set>]][,<patch set>...] restrict patch sets by id
-a <author> restrict output to patch sets created by author
-f <file> restrict output to patch sets involving file
-d <date1> -d <date2> if just one date specified, show
revisions newer than date1. If two dates specified,
show revisions between two dates.
-b <branch> restrict output to patch sets affecting history of branch
-l <regex> restrict output to patch sets matching <regex> in log message
-r <tag1> -r <tag2> if just one tag specified, show
revisions since tag1. If two tags specified, show
revisions between the two tags.
-p <directory> output patch sets to individual files in <directory>
-v show very verbose parsing messages
-t show some brief memory usage statistics
--norc when invoking cvs, ignore the .cvsrc file
--summary-first when multiple patch sets are shown, put all summaries first
--test-log <captured cvs log> supply a captured cvs log for testing
--diff-opts <option string> supply special set of options to diff
--bkcvs special hack for parsing the BK -> CVS log format
--no-rlog disable rlog (it's faulty in some setups)
--cvs-direct (--no-cvs-direct) enable (disable) built-in cvs client code
--debuglvl <bitmask> enable various debug channels.
-Z <compression> A value 1-9 which specifies amount of compression
--root <cvsroot> specify cvsroot. overrides env. and working directory
-q be quiet about warnings
<repository> apply cvsps to repository. overrides working directory
cvsps version 2.0rc1
If you want to send comments, bug reports or feature requests to me, David
Mansfield, try firstname.lastname@example.org.