= README for cvs-fast-export =
This program analyzes a collection of RCS files in a CVS repository
(or outside of one) and, when possible, emits an equivalent history in
the form of a fast-import stream. Not all possible histories can be
rendered this way; the program tries to emit useful warnings when it
can't. The program can also produce a visualization of the resulting
commit DAG in the DOT format handled by the graphviz suite.
This program could have been called rcs-fast-export with equal
appropriateness; the cvs-fast-export name was chosen to avoid
colliding with a pre-existing script with that name by Giuseppe
Bilotta.
The analysis stage of this code originally travelled as "parsecvs"
and was written by Keith Packard in early 2006. It was briefly
maintained by Bart Massey before passing to Eric S. Raymond in
late 2012; ESR wrote the fast-export output stage and renamed the
program to reflect its new function. More historical details are
in hacking.asc.
The distribution includes a tool, cvssync, for fetching masters from
CVS remote repositories so cvs-fast-export can see them. You will
need rsync installed to use it.
A weapper scripped called cvsconvert runs a conversion to git and
looks for content mismatches with the original CVS.
Also included is a tool called cvsreduce that strips content out of
trees of RCS/CVS masters, leaving only metadata structure in place. If
you encounter a bug in this progeam, sending the maintainer a reduced
version of your CVS tree greatly decreases the rxpected time to fix.
A more detailed guide to effective bug reporting is at reporting.asc.
This code has a regression-test suite; invoke it with "make check".
You will need RCS and CVS installed to run the tests, but they're
not required for production use of cvs-fast-export. Installed CVS
us required to use the cvsconvert wrapper script.
See also the NEWS and TODO files. There is an (incomplete) tour of
the internals in hacking.asc.