I.    CVS Server/Client Setup 

Server: CVSnt 2.0.51d
            (, all versions of CVSnt download)

Client:  winCVS (CVSnt 2.0.51d inside)


    1. The versions of winCVS/CVSnt must not conflict;

    2. Server can only be installed on WinXP/2000/2003 system;

    3. Shut up any File Protecting System when running setup, e.g. Norton Antivirus;

    4. Shut up WMI service(as to win2003) when installing CVSnt. 

II.   CVSnt Repository Management  

    (All operations on Server machine)
    1. Open CVSnt 'Service Control Panel';

    2. If service started, stop it;

    3. 'Repositories' -> 'add' -> imput repository's location (eg. 'c:/cvs/repository1') ;

    4. change the repository's name (eg. '/repository1');

    5. create a directory and then set 'Advanced' -> 'Temporary' located to it;

    6. Click 'Apply' button (ESSENTIAL!);

    7. start service;


    The repository and temporary directory must be on a LOCAL (not networked) disk on the CVSNT server.

III.   CVSnt User Management   
A.  Windows and CVS combined authentication (default)


B. CVS authentication alone :


    1. Unselecte 'impersonation' on CVSnt service control panel;

    2. Selecte 'use local user for pserver authentication instead of domain user';

    3. 'cvs service' and 'cvs lock service' started;

    4. Use 'pserver' protocol.


    (All operations on client machine)

    1. Create cvs user 'cvsadmin' by default admin user 'Administrator' and give it full right on 'CVSRoot' 

       (1) Run winCVS;

       (2) Login repository as default admin user 'Administrator':  'Admin->Login',  


            input password of user 'Administrator' on the server machine .

       (3) Create temporary directory 'c:/cvs/admintemp';

       (4) Check out module 'CVSRoot' to this temporary directory, move to directory 'CVSRoot';

       (5) Add new cvs user 'cvsadmin' for current repository, execute command:

                cvs passwd -a cvsadmin   

                ( set password for 'cvsadmin' )

       (6) Give 'cvsadmin' full right on 'CVSRoot',  execute:

               cvs chown cvsadmin    ( set cvsadmin an owner of directory 'CVSRoot' )

               cvs chacl default:n   ( cancel all rights of the others ) 

               cvs chacl cvsadmin:cwr    ( give cvsadmin full right: CREATE, WRITE, READ )

       (7) Remove temporary directory 'c:/cvs/admintemp' (Close winCVS first);

    2. Make user 'cvsadmin' an administrator of this repository

       (1) Login repository as user 'cvsadmin':  'admin->login',  CVSRoot=:pserver:cvsadmin@serverIP:/repositoryNAME 

            input password of user 'cvsadmin'.

       (2) Create directory 'c:/cvs/admin' for cvs administration;

       (3) Check out module 'CVSRoot' to this directory;

       (4) Move to directroy 'CVSRoot', create a file 'admin' with the content 'cvsadmin', execute:

                cvs add admin     ( add file 'admin' to repository )

                cvs commit -m "no msg" admin        ( check in file 'admin' )

                (OR: cvs ci -m "no msg" admin)

       (6) Modify the file 'checkoutlist' by adding ' admin  error message' at last line, execute:

                cvs commit -m "no msg" checkoutlist ( check in this modification )

       (7) By now, 'cvsadmin' has already become an administrator of this repository;

    3. Further user-management

       (1) Add new user, execute:

                cvs passwd -a username

       (2) Change a user's right:

                cvs chacl -R [-r tag] {user|default}:[{[r][w][c]|[n]}] [directory...]

                -R, Recursively set permissions

                -r, Set permissions on specific branch


    1. All opertions above can accomplished in winCVS 'Admin->Command Line' or a dos command window, eg. login:

                set cvsroot=:pserver:cvsadmin@server:/repo

                cvs login

    2. As to cvs users, just one specific repository be concerned. 

    3. As to user's rights, just one specific directory be concerned.

IV.   Project Management    

    1. When a new directory (client project) was checked in to CVSnt (to create a new module),  

       it must be removed from client machine and checked out from CVSnt so that it could be under CVS control.