一、安装
CVSNT 2.5.03 .2382
二、创建仓库
cvs –d c:/workroot init
三、创建项目
1、 新建一个目录new_project,将项目文件放入该目录(至少要有一个文件)
2、 在命令行下作如下操作:
>cd new_project
>cvs -d :pserver:username:password@sunking:/workroot import -m "First Import" -n projectname
四、访问仓库
cvs -d :pserver:username:password @sunking:/workroot checkout projectname
五、规划项目结构
README文件 在这个文件中写一小段文字来说明有关这个项目的一切:它要解决的商业问题、所运用的基本技术等等。这并非一个完全的说明,它只是帮助你在很长时间以后回忆起这一切。
BUILDING文件 包含一些简单的指示,来告诉以后使用这些代码的人如何根据源代码文件重新生成项目。
GLOSSARY文件 将项目专用的所有术语记录在这个文件中,并形成一种习惯。它不但让以后的开发者更容易知道术语的意思,而且可以指导项目开发小组为类、方法、变量命名。
doc/目录 将所有的项目文档都保存到此目录及其子目录中。
data/目录 将项目中要用到的数据保存到此目录中。
db/目录 如果项目中使用了一个数据库,那么应该把与schema相关的所有数据存放在CVS中。尽量不要养成在线改动schema的习惯。对于每次更新,让数据库管理员创建SQL更新脚本,这个脚本既要更新schema,也要迁移数据。如果将这些数据保存到CVS仓库中,就可以让数据库能够在不同版本之间互相迁移。
src/目录 项目的源代码文件存放到此目录中。
util/目录 用来存放各种项目专用的使用程序、工具以及脚本程序。
vendor/目录 如果项目使用了第三方库或头文件,并且想将这些文件和自己的代码存放在一起,那么可将它们存放到此目录下。
vendorsrc/目录 有时一个项目将导入并且包含第三方代码(例如,如果用到一个公开源代码库并且需要确保在程序的生命期内可以存取这个库的一个特定版本)。你会将这个二进制库(可能还有头文件)存放在vendor目录下,但是你也想保留用来创建这个二进制库的源代码。
六、安全性设置
CVSNT缺省将Windows系统用户作为自己的用户来实现权限管理,如果要将CVS用户与Windows用户分开,由CVSNT管理自己的用户权限就必须要做一些设置工作,下面给出一个在使用过程中比较方便的配置步骤:
1、 在安装CVSNT的Windows系统中添加一个系统用户cvsuser
2、 添加CVS用户名和密码,在命令行下作如下操作:
>cvs -d :pserver:username:password@sunking:/workroot passwd -r cvsuser -a cvsname1
* cvsname1是需要添加的CVS用户名
* 执行上述命令后,在服务器上的${REPOSITORY}/CVSROOT/passwd文件中会增加一行用户名密码记录,格式为:用户名:加密后的登陆密码:Windows系统用户+[回车]。多次执行上述命令添加cvsname2、cvsname3、cvsname4……
3、 在目录${REPOSITORY}/CVSROOT/中新建文件admin,将CVS管理员的用户名(如:cvsname1)加入该文件中,格式为:用户名+[回车]。admin中应添加至少一个或者多个管理员。
4、 切换CVSNT权限认证方式。将${REPOSITORY}/CVSROOT/config文件中的SystemAuth=yes改为SystemAuth=no就行了。此时,原来的Windows帐号就不能访问CVS服务器了,只有在2中添加了的帐户可以访问。
七、项目权限分配
在REPOSITORY下面还可以按实现工作划分成项目、模块、文件等层次结构。项目管理会需要对这些项目、模块、文件进行更细致的权限设置,为实现这个功能,需要用到如下命令:
Usage: cvs chacl [-R] [-r branch] [-u user] [-j branch] [-n] [-p priority] [-m message] [-a [no]{read|write|create|tag|control|all|none}[,...]] [-d] [file or directory...]
-a access Set access
-d Delete ACL
-j branch Apply when merging from branch
-m message Custom error message
-n Do not inherit ACL
-p priority Override ACL priority
-r branch Apply to single branch
-R Recursively change subdirectories
-u user Apply to single user
1、 关闭默认的权限
>cd new_project
>cvs chacl -a none
2、 为用户分配权限
>cd new_project
>cvs chacl –u cvsname -a all
3、 按组分配权限
在服务器上的${REPOSITORY}/CVSROOT/group文件中将用户分成若干组,格式为:组名:用户名1 用户名2 用户名n +[回车]。
>cd new_project
>cvs chacl –u cvsgroup -a all