In CVS, files are never locked. Two users can check out the same file at the same time; each user has a separate copy and can edit it. Work files are always writable; once you have one, you need not type a VC command to start editing the file. You can edit it at any time.
CVS terminology speaks of committing a change rather than checking it in. But in practical terms they work the same way: Emacs asks you to type in a log entry, and you finish it with C-c C-c. When using RCS and SCCS, you normally use C-x C-q twice for each change; once before the change, for checkout, and once after, for checkin. With CVS, it's different: you normally use C-x C-q just once for each change, to commit the change when it is done. The work file remains writable, so you can begin editing again with no special commands.
When you commit a change in a file, and someone else has committed another change in the meanwhile, that creates a conflict. Then C-x C-q asks you to resolve the conflict and try again.
VC does not provide a way to check out a working copy of an existing file in the repository. You have to use the CVS shell commands to do that. Once you have a work file, you can start using VC for that file.
You can turn off use of VC for CVS-managed files by setting the
nil. If you do this, Emacs
treats these files as if they were not managed, and the VC commands are
not available for them. You must do all CVS operations manually.