- 论坛徽章:
- 0
|
作为世界上广泛使用的版本控制系统---cvs,在国内的普及程度却相对较低。
为满足项目开发的实际需求,最近对cvs服务器的配置作出了如下探讨:
(关于cvs服务器的基本设置可参考论坛内其他贴子。)
1。控制除管理员外的其他用户实用cvs管理命令cvs admin.
cvs默认系统内cvsadmin组用户才能使用cvs admin 命令。所以,很简单,你只需要在系统内建立cvsadmin组,然后只将管理员添加到组内即可。
2。建立只读用户。
在开发过程中,通常有一个人负责监督项目,而不对项目作任何修改。这是我们应该为其建立一个只读用户。
在$CVSROOT/CVSROOT/ 下建立passwd文件。写入:
anonymous::someSysUser
文件格式是:
登陆用户名:登陆密码:映射到系统的用户名。
并表明其为指定用户,在$CVSROOT/CVSROOT/ 下建立readers文件。写入:
anonymous
readers文件只需写入登陆用户名即可。
3。针对特定目录对特定用户限制其修改权限。
cvs 在用户执行commit,checkin提交操作时会检查$CVSROOT/CVSROOT/commitinfo文件。所以只需要让控制用的脚本放在这里就可以了。
ALL $CVSROOT/CVSROOT/commit_prep %r/%p %s
ALL $CVSROOT/CVSROOT/cvs_acls -u $USER %r/%p %s
上述两个脚本存在于cvs源码文件的/contrib目录下。具体用法可参考它的帮助。
建立$CVSROOT/CVSROOT/cvsacl文件。写入:
deny||CVSROOT
allow|someCVSadministrator|CVSROOT
文件的格式是:(deny或者allow)|用户名|需要限制的目录(或者文件名)
上述的内容实现了对$CVSROOT/CVSROOT/目录的访问限制,只有someCVSadministrator可以checkin,commit这个目录。
4。当某用户提交修改时,进行mail通知。
也是在通过commit操作触发。建立$CVSROOT/CVSROOT/cvsacl文件。写入(例如):
^CVSROOT\(/\|$\) Mail -s "%p %s" someone@somedomain.org
格式与commitinfo一致:提交的目录(或文件) 执行的命令(或脚本)
当然mail得事先配置好。
5。防止用户添加二进制文件时,没有用-kb指定。
通常向cvs添加除纯文本以外的文件时,需要用cvs add -kb someBinaryfileName 来指定不进行文件内存在的cvs关键字的扩展。如果添加文件的人忘了指定,就常会造成别的用户checkout下来之后无法正常打开文件。这一点可以通过服务器配置得到避免。
编辑$CVSROOT/CVSROOT/cvswarppers.写入(例如):
*.mpp -k 'b'
*.pdf -k 'b'
*.doc -k 'b'
*.xls -k 'b'
*.ppt -k 'b'
*.chm -k 'b'
以上控制了以.mpp,.pdf... ...为后缀的文件默认以二进制添加。
应该还有,不过今天就写这些了。当然以上这些大都能从cvs manual上了解到,而且有些理解不免肤浅或错误,不过还是希望我写的会对那些想在他们的实际开发中用cvs进行版本控制的人会有帮助。
另外在cvs使用上有什么问题,欢迎大家一起探讨。
[ 本帖最后由 xb_parasite 于 2005-12-9 12:53 编辑 ] |
|