Execute cvs co module where module is an entry from the modules file (see above):
Say cvs co malloc to get my malloc library. It will create the sub-directory malloc and will load the files into this new directory.
Edit the files to your heart's content.
If you add any new files to the directory that you want the repository to know about you need to do a
cvs add file1 [file2 ...]
If you remove any files you need to do a
cvs remove file1 [file2 ...]
If you rename you need to do a combination remove and then add.
Execute cvs update to pull in the changes from the repository that others made. It will resolve conflicts semi-automatically. It will tell you about the files it updates. U means updated, C means there was a conflict that it could not automatically resolve. You need to edit the file by hand, look for the <<<<< and >>>>> lines and figure out how the file should look.
Execute cvs commit inside the directory you checked out to papply your changes to the repository so others can use them (if they have the module in question checked out already, they need to do a cvs update to see your changes).
When you are done with the files (for the time being) you cd .. to the above directory and do a cvs release [-d] module-name which will check-in the files. The optional -d will remove the directory and files from your work directory when it is done releasing them. The release command will inform you if your made modifications to the files and if there are files it doesn't know about that you may have forgotten to add. watch for ? file lines printed. You may have to stop the release and commit or cvs add/remove the files.
WARNING: release -d is unrecoverable. Make sure that you take your time here. Fortunately, cvs release asks whether you really want to do this before doing anything.