CVS locks in the repository
For an introduction to cvsnt locks focusing on user-visible behavior, see the section called “Several developers simultaneously attempting to run CVS”. The following section is aimed at people who are writing tools which want to access a cvsnt repository without interfering with other tools acessing the same repository. If you find yourself confused by concepts described here, like read lock, write lock, and deadlock, you might consult the literature on operating systems or databases.
cvsnt now uses the LockServer to handle lock concurrency in a dynamic way (see the section called “The CVSNT lockserver”. This following section refers to the obsolete filesysem lock method, which may still be in use on some sites.
Any file in the repository with a name starting with #cvs.rfl. is a read lock. Any file in the repository with a name starting with #cvs.wfl is a write lock. Old versions of cvsnt (before cvsnt 1.5) also created files with names starting with #cvs.tfl, but they are not discussed here. The directory #cvs.lock serves as a master lock. That is, one must obtain this lock first before creating any of the other locks.