= 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-import 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.

One paragraph from Keith's original notes is still relevant:

	Disjoint branch resolution. Branches occurring in a subset of the
	files are not correctly resolved; instead, an entirely disjoint
	history will be created containing the branch revisions and all
	parents back to the root. I'm not sure how to fix this; it seems
	to implicitly assume there will be only a single place to attach as
	branch parent, which may not be the case. In any case, the right
	revision will have a superset of the revisions present in the
	original branch parent; perhaps that will suffice.

