I. CVS Server/Client Setup
Server: CVSnt 2.0.51d
(http://www.cvsnt.org/archive/, all versions of CVSnt download)
Client: winCVS 1.3.20.2 (CVSnt 2.0.51d inside)
activeTCL 8.4.1.0-2
python221
NOTICE
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;
ESSENTIAL
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)
(omitted)
B. CVS authentication alone :
DEMANDS
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.
STEPS:
(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',
CVSRoot=:pserver:Administrator@serverIP:/repositoryNAME
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
REMARK
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.