CVS (Concurrent Versions System) is an open-source network-transparent version control system for individual developers to large, distributed teams.

CVSNT is made available under the terms of the GNU General Public License and can be installed on Windows (NT, 2000, XP) Linux and Unix installations.

The latest CVSNT version can be downloaded from:

A GUI front-end for CVS can be downloaded from:

Installing CVSNT 2.0.51


Operating system used
Windows XP Home Edition Version 5.1 SP 2

Software prerequisites

  1. Login in Windows XP as a user with administrator rights, e.g.: Mainuser

  2. Download Windows install: cvsnt-2.0.51.exe

  3. Run cvsnt-2.0.51.exe

    CVSNT Setup

  4. Accept license agreement.

    CVSNT License

  5. Select location where CVSNT should be installed.

    CVSNT Destination Location

  6. Select "Typical installation".

    CVSNT Components

  7. Create program shortcut.

    CVSNT Start Menu Folder

  8. Select Aditional Tasks: select all

    CVSNT Additional Tasks

  9. Reboot your PC.

  10. Create a repository directory: e.g.: c:\CVSRepository
    Create a repository temp directory: e.g.: c:\CVSTemp
    Note: The repository must reside on a local NTFS file system (networked drives as well as FAT systems are not supported).

  11. Open the Control Panel and look for the icon "CVS for NT". Double click this icon.

    CVS for NT

  12. Stop the CVS Service if it is running.

    CVS Service Status

  13. Select tab "Repositories", press the Add button and select the C:/CVSRepository location.
    Enter Name: /CVSRepository

    If you intend to connect Eclipse to this CVS Repository you MUST change Name: /CVSRepository into C:/CVSRepository (use full path!)

    Eclipse doesn't like CVSNT's Repository prefix feature!

    CVS Prefix

    CVS Repositories

    When you press the OK button the following message is displayed:

    "C:/CVSRepository exists, but is not a valid CVS repository.
    Do you want to initialise it?"

    Select Yes.

  14. Select tab "Advanced", and change the "Temporary Directory" into C:\CVSTemp. Also enable "Use local users for pserver authentication instead of domain users."

    CVS Advanced

  15. Select tab "CVS Service" and start the CVS Service you stopped before.

  16. To check if CVSNT is installed correctly, type: cvs -version
    You should see:

    Concurrent Versions System (CVSNT) 2.0.51 (client/server)

  17. To display the cvs usage, type: cvs --help
    You should see:

    Usage: cvs [cvs-options] command [command-options-and-arguments]

    where cvs-options are -q, -n, etc.
    (specify --help-options for a list of options)

    where command is add, admin, etc.
    (specify --help-commands for a list of commands
    or --help-synonyms for a list of command synonyms)

    where command-options-and-arguments depend on the specific command
    (specify -H followed by a command name for command-specific help)

    Specify --help to receive this message

    The Concurrent Versions System (CVS) is a tool for version control.
    For CVS updates and additional information, see
    the CVSNT home page at

  18. To display a list of cvs commands, type: cvs --help-commands
    To display a list of command synonyms, type: cvs --help-synonyms
    To display the usage of a command, type: cvs -H command or download cvs 2.0.51 command help file.

    add ad newAdd a new file/directory to the repository
    admin adm rcsAdministration front end for rcs
    annotate annShow last revision where each line was modified
    chacl setacl setpermChange the Access Control List for a directory
    checkout co getCheckout sources for editing
    chown setownerChange the owner of a directory
    commit ci comCheck files into the repository
    diff di diffShow differences between revisions
    edit  Get ready to edit a watched file
    editors  See who is editing a watched file
    export exp exExport sources from CVS, similar to checkout
    history hi hisShow repository access history
    import im impImport sources into CVS, using vendor branches
    init  Create a CVS repository if it doesn't exist
    info infDisplay information about supported protocols
    log loPrint out history information for files
    login logon lgnPrompt for password for authenticating server
    logout  Removes entry in .cvspass for remote repository
    ls dir listList files in the repository
    lsacl lsattr listpermList the directories Access Control List
    passwd password setpassSet the user's password (Admin: Administer users)
    authserver pserverAuthentication server mode
    rannotate rann raShow last revision where each line of module was modified
    rdiff patch paCreate 'patch' format diffs between releases
    release re relIndicate that a Module is no longer in use
    remove rm deleteRemove an entry from the repository
    rename ren mvRename a file or directory
    rlog rlPrint out history information for a module
    rtag rt rfreezeAdd a symbolic tag to a module
    server Server mode
    status st statDisplay status information on checked out files
    tag ta freezeAdd a symbolic tag to checked out version of files
    unedit  Undo an edit command
    update up updBring work tree in sync with repository
    version ve verShow current CVS version(s)
    watch  Set watches
    watchers  See who is watching a file

  19. To display a list of cvs options, type: cvs --help-options

    -H Displays usage information for command.
    -Q Cause CVS to be really quiet.
    -q Cause CVS to be somewhat quiet.
    -r Make checked-out files read-only.
    -w Make checked-out files read-write (default).
    -n Do not execute anything that will change the disk.
    -t Show trace of program execution (repeat for more verbosity) -- try with -n.
    -v CVS version and copyright.
    -T tmpdir Use 'tmpdir' for temporary files.
    -e editor Use 'editor' for editing log information.
    -d CVS_root Overrides $CVSROOT as the root of the CVS tree.
    -f Do not use the ~/.cvsrc file.
    -F file Read command arguments from file.
    -z # Use compression level '#' for net traffic.
    -x Encrypt all net traffic (fail if not encrypted).
    -y Encrypt all net traffic (if supported by protocol).
    -a Authenticate all net traffic.
    -N Supress network share error.
    -s VAR=VAL Set CVS user variable.
    --version CVS version and copyright.
    --encrypt Encrypt all net traffic (if supported by protocol).
    --authenticateAuthenticate all net traffic (if supported by protocol).

  20. The next step is to add CVS users see guide, "How to add CVS users."
    If you want to know more about how to use CVS see quick guide: "How to use CVS."