由于臨時有個小項目,向公司申請CVS立項是件很麻煩的事情,所以只有自動動手搞一個CVS服務器了,網上找了很多資料,發現資料非常混亂,有2/3是UNIX系統的,有1/3是windows的,但大多是cvsnt2.04的,不知道別人怎么弄的,自己耗費了許多時間總也不成功,發現新的版本已經是2.5.03的了,命令都改了,還學什么.只好自己一點點的弄了,關鍵是實現權限控制,麻雀雖小,五臟俱全.
環境搭配:
Cvsnt : 2.5.03,下載地址:http://www.cvsnt.org
Wincvs : 1.3b中文版,下載: www.8848software.com/wincvs
操作系統 : windows XP
實現過程參考前面一篇轉的blog
1.admin文件
這個文件記錄cvs服務器的管理員,把賬戶名寫進去然后在checkoutlist文件中加入admin文件名(需先checkout checkoutlist文件,修改后再提交才能生效,不能在服務器改)
所謂管理員,就是能給別人分權限
2.congfig文件
這個文件記錄是否采用系統驗證,同樣需先checkout,修改后再commit才能生效
3.muldes文件
這個文件記錄當前倉庫有的項目/模塊,不寫發現也可以
4.group文件
這個文件記錄用戶的分組,涉及到權限分配,建議把所有的用戶分組,不然cvs默認用戶擁有所有權限.
5.wincvs1.3中的cvs.exe太老不支持chacl命令,所以我從cvsnt中考了cvs.exe,覆蓋下就OK了
6.權限控制
為用戶分配權限,首先使用cvs管理員登陸,然后checkout到本地cvs目錄,注意不可以在服務器上的cvs倉庫使用命令
cvs chacl -a [no]read|write|tag|control|all -u user cvs在新的版本中命令已經變了
如取消用戶權限: cvs chacl -a noread -u hy(要取消的用戶名或者用戶組名) 不要使用網上說的 cvs chacl default:n
增加權限控制: cvs chacl -a nowrite -u hy(要取消的用戶名或者用戶組名)
在命令提示符下要能使用首先要配置CVSROOT的環境變量,具體配置網上搜索.
我總結出來的權限管理思路:
(1)首先把所用賬號都分成不同的組,然后用組來管理權限.
(2)每新增一個模塊,在本地的cvs目錄上調用一下 cvs chacl -anoread -u 用戶組,再為這個項目組員單獨分配權限.這樣權限就控制到了工程目錄級別,
(3)設置某個組員在項目下某個目錄不可以寫,如不讓項目組中的新手改WEB-INF下的配置文件,可以在命令提示符下訪問WEB-INF目錄 調用:cvs chacl -a nowrite-u hy whai(可以有多個用戶)
(4)刪除用戶的權限設置 cvs chacl -d -u hy
(5)列出項目下的權限控制 cvs lsacl
(6)更改項目所有者 cvs chown hy