Finally got around to fixing up my perl module to manipulate RCS/CVS files enough that it might actually be useful for manipulation.
It is now able to read and write RCS/CVS files, to retrieve the text for any version in the file, and to add new versions on an already existing branch. It is robust enough on the read/write that I couldn't find any errors in a full pass through the FreeBSD repository (reading in every single file, writing it out, and looking through the diffs between the original and the new copy.)
Forward steps:
- Check that adding deltas on a branch work correctly
- Extend the Invariant check to be closer to a complete check of the invariants for the object
- Add support for adding new branches
- Add more useful accessor methods
- Add documentation
- Declare project complete, upload it to CPAN, and go for SCCSFile.pm
Preliminary code is at http://www.freebsd.org/~eivind/CVSFile-0.1.tar.gz.