The CVS license allows you to modify the CVS code and distribute the modified code. Several variants are provided by developers who have produced expansions of CVS for specific purposes.
CVS/MVS is a port of CVS for the MVS (Multiple Virtual Storage) mainframe operating system, also known as OS/390 and zOS. CVS/MVS requires MVS with POSIX configured, and the HFS (Heirarchical File System).
CVS/MVS is a port of both the server and the command-line client.
CVS/MVS is available at http://cvsmvs.dccmn.com/.
CVSNT is an alternative CVS server for Windows NT and later, Unix, and Linux. It includes a command-line client as well as the server, and the client can be used with some of the integration tools described in Appendix A.
As well as running on Windows operating systems, CVSNT provides an additional access method, sspi, that authenticates using NT domain passwords. It also allows you to lock branches to specific developers and has a Windows-style installation script. However, CVSROOT scripts that rely on a Unix-like shell environment may not work under CVSNT.
CVSNT is available at http://www.cvsnt.org.
Meta-CVS is an expansion of CVS that adds versioning for directories, supports symbolic links and file metadata, automatically sets the keyword-expansion mode for certain file types (such as .png files) to binary, and improves the user interface for branching and merging. It also improves the way CVS handles file addition and removal conflicts and changes the way vendor branches are used.
Meta-CVS is a variation of the client code and operates from a standard CVS repository. It changes the data stored in the repository, so you can't have a team on the same project with a mixture of Meta-CVS and standard CVS users.
Meta-CVS is available from http://users.footprints.net/~kaz/mcvs.html.