Before CVS installation and starting work, you have to learn some special terms which you will come across in your work. Let us get acquainted with them according to their importance.
Repository is a place for storing data that are under control. Mind that they are not the data you work with on your disk. More often the repository is located on a server. The repository itself is a folder on the disk (more often - on the server disc) having specific structure and storing files of special types. The repository always contains a folder CVSROOT in which all basic administrative files necessary for supporting CVS are located. Other folders containing user data can also be located in the repository. The content of these files mirrors the content of catalogs from which the files were taken, but all the files have a suffix .v. The files have a structure transparent enough for easy recovering of the files in case of their damage.
CVSROOT is a string of a special format specifying the address of the repository which you connect to. In a certain sense CVSROOT concept is similar to the URL concept. CVSROOT has the following format:
:protocol: is a way of connecting to CVS. It is obligatory enclosed in ':' and can possess the following values:
:local: - The repository is located in local or network file system. This way of connection is not recommended, since in this case CVS deteriorates to a client-filesystem (similar to SourceSafe). This can cause problems if too many users will try to access it.
:pserver: - the first access protocol according to the client-server scheme, the most simple and the fastest one. Its imperfection - it transfers all the data unsecured. If you need to secure codes and user passwords, do not use this protocol in public nets.
:ext: or :ssh: - access protocol using SSH (Secure Shell). It is used for accessing UNIX servers and it supports all data encodings.
:sspi: - access protocol for Windows server with data encoding support.
There exist some other access protocols, but their usage is specific and seldom.
user - user login. It is necessary for protocols requiring authorization (actually for all client-server protocols).
:password - user password. It is used in protocols :pserver:, :sspi:. However, direct usage of this field is not recommended. The operation "login" (cvs login) is usually performed instead, and your password is remembered for all the time of working.
@servername - server name for client-server protocols. The character '@' is obligatory at the beginning of the server name.
:serverpath - the path to a repository on server. The character ':' is obligatory at the beginning of the path. The path itself can be either /usr/local/cvs (UNIX) or C:\cvs\repository (Windows).
Roughly, module is a folder inside the repository. Its name is a path to it, beginning from the repository root. Suppose for example that your repository is located in C:\cvs\repository. Then module MyTestProject will be physically located in C:\cvs\repository\MyTestProject. More often 'module' concept is used only in this meaning.
However, looking more deeply one can see that really module is a folder described in a file CVSROOT/Modules (administrative file). It is important that each folder in this file which is located inside the repository can be a root module, and, what is more important, a "virtual" module can be assembled. That is, a virtual file tree can be created, which parts are actually located in different folders of the repository. CVS does not distinguish these two concepts, they are the same for CVS.