First you need to install the CVS package, on Redhat linux use
cd /mnt/cdrom/Redhat/RPMS rpm -i rcs*.rpm rpm -i cvs*.rpm To see the list of files installed do - rpm -qpl cvs*.rpm | less
On other flavors of unix, you may need to download the RCS and CVS tar balls and follow README, INSTALL files to setup CVS. Visit http://www.cyclic.com and http://www.loria.fr/~molli/cvs-index.html
The following environment variables need to be setup in /etc/profile - default values required for all users. If not set in /etc/profile, than you should add these to your local profile file /.bash_profile.
export EDITOR=/bin/vi export CVSROOT=/home/cvsroot export CVSREAD=yes
Create a directory to store the source code repository and give read, write access to unix group/user.
export CVSROOT=/home/cvsroot mkdir $CVSROOT chmod o-rwx $CVSROOT chmod ug+rwx $CVSROOT
cvs init # Change directory is a must cd $HOME/my_source_code_dir # Must give vendor tag and revision tag cvs import my_source_code_dir V1_0 R1_0
To migrate the existing RCS files to CVS, use the following script. Make sure that you installed korn shell package pdksh*.rpm from Linux contrib cdrom. After running the script move the resultant directory-tree to $CVSROOT/some_project_name
NOTE : Korn shell /bin/ksh is got by installing pdksh*.rpm from Linux contrib cdrom
#!/bin/ksh ############################################################# # Program to Migrate the existing source code in RCS to CVS # # Needs the korn shell RPM package pdksh*.rpm from Linux # contrib cdrom ############################################################# # Enter your current RCS file location here. RCS_DIRECTORY=/usr/home/my_rcs_tree # Temporary directory to hold the files TMP_RCS_DIR=$HOME/tmp_rcs_directory mkdir $TMP_RCS_DIR # Copy the tree having RCS directory into temporary directory cd $RCS_DIRECTORY tar cvf - ` find . -name RCS -print ` | ( cd $TMP_RCS_DIR; tar -xvf - ) cd $TMP_RCS_DIR for ii in `find . -type f -print` ; do # $ii will have like /home/foo/RCS/sample.c,v echo $ii # Get the dir name like /home/foo/RCS from ii kk=`dirname $ii` # echo $kk # Drop off RCS from kk - like /home/foo jj=`dirname $kk` # echo $jj # Move file from RCS to upper leve like # mv /home/foo/RCS/sample.c,v /home/foo mv $ii $jj done # Remove the empty directory RCS like - # rmdir /home/foo/RCS cd $TMP_RCS_DIR find . -type d -name RCS -exec rmdir {} \; # The resultant directory is $TMP_RCS_DIR (which is $HOME/tmp_rcs_directory) # Move the directory tmp_rcs_directory to $CVSROOT/some_project_name # Now the RCS is migrated to CVS as 'some_project_name' .