***** WARNING ******
Create special user accounts for both the VMS and UNIX systems to host
these procedures. The conversion procedures WILL wipe directories
in the accounts hosting the conversion!!!!!!
***** WARNING ******
The CMS to CVS tools consist of ....
mover.exp - moves a library from CMS to CVS
check.exp - checks a library
vars.exp - variables used by both mover.exp and checker.exp
common.exp - procedures used by both mover.exp and checker.exp
To use the tools, create a local repository and make sure that an empty directory (module) exists for the library to be moved.
Make sure you do not have any important files in the default directory that you are using for the CMS user as well as the Unix account hosting the CVS conversion. Both mover and checker do a lot of global deletes in those directories.
Customize the valuse in vars.exp
Starting in a directory we will refer to as BASE....
cd <BASE>
cvs checkout <modulename>
cd <modulename>
script logfilename
[path/]mover.exp
There will be a large number of error messages generated to the logfile. The script makes few attempts to check for error status and many commands will put error messages in the logfile even when things are working properly.
During/after execution, look for an optput file called "cvsession.log" for a transcript of the cvs commands and their outputs. You should not see errors in here.
If you want to rerun the conversion....
cd <BASE>
rm -f $CVSROOT/module/*
rm -rf <modulename>
After this completes, you can verify the conversion by first creating a directory on the CMS host called TMP.DIR and running
cd <BASE>
script chekout
checker.exp
exit
checkout will have a dircmp (directory compare) between the 2 systems for every version that had a tag assigned
After the conversion, all files will have been created with a -kb keyword expansion option. If you use PCs and have true text files, adjust the -k option to -kkv or -ko using the cvs admin command.
ISSUES/NOTES:
The script assumes that you have no file you care about called....
chek1
chek2
class.*
mover.out
cvsession.log
Mover will wipe your CMS host's default directory Checker will wipe your CMS host's TMP directory Both will repeatedly trounce your CVS working directory
- TODO
Add error detection to directory changes on CMS host so that default directory will not get trounced if "set def" fails
HOW THIS WORKS:
cms2cvs starts by requesting a list of every element in the library
Then it gets a list of all the generations for each element
Then it systematically checks out each generation of each element, moves it to the CVS host, and checks it into CVS after mapping revision numbers and filenames appropriately. After each checkin, it directly edits the repository file to fix the user and date of checkin.
After the move is complete, it obtains a list of class tags
For each tag, it obtains a list of elements and generation numbers, maps those to CVS names and revision numbers, and tags the files into the class.
