創建。注意:通過htpasswd創建出來的文件會沒有映射系統用戶的字段
例如:
new:geBvosup/zKl2
setup:aISQuNAAoY3qw
test:hwEpz/BX.rEDU
映射系統用戶的目的在于:你可以創建一個專門的CVS服務帳號,比如叫cvs,并將/home/cvsroot目錄下的所有權限賦予這個用戶,然后在 passwd文件里創建不同的開發用戶帳號,但開發用戶帳號后的文件讀寫權限都映射為cvs用戶,避免了在SSH模式下多個開發用戶新建文件后的對于其他用戶的文件讀寫權限問題。
進一步的,你可以將用戶分別映射到2組用戶上,利用2個用戶的權限設置,避免2個項目組的文件互相訪問。
new:geBvosup/zKl2:proj1
setup:aISQuNAAoY3qw:proj2
test:hwEpz/BX.rEDU:proj1
CVSTrac很好的解決了CVSROOT/passwd的管理問題,而且包含了BUG跟蹤報告系統和集成WIKIWIKI交流功能等,使用的CGI方式的安裝,并且基于GNU Public License:
安裝過程
下載:可以從http://www.cvstrac.org 下載
我用的是已經在Linux上編譯好的應用程序包:cvstrac-1.1.1.bin.gz,
%gzip -d cvstrac-1.1.1.bin.gz
%chmod +x cvstrac-1.1.1.bin
#mv cvstarc-1.1.1.bin /usr/bin/cvstrac
初始化cvstrac數據庫:假設數據庫名是 myproj
在已經裝好的CVS服務器上(CVS庫這時候應該已經是初始化好了,比如:cvs init初始化在/home/cvsroot里),運行一下
%cvstrac init /home/cvsroot myproj
運行后,/home/cvsroot里會有一個的myproj.db庫,使用CVSTRAC服務, /home/cvsroot/myproj.db /home/cvsroot/CVSROOT/readers /home/cvsroot/CVSROOT/writers /home/cvsroot/CVSROOT/passwd 這幾個文件對于web服務的運行用戶應該是可寫的,在RedHat8上,缺省有一個叫apache用戶和一個apache組,所以我在 httpd.conf文件中設置了用apache用戶運行web服務:
User apache
Group apache,
如果服務器上apache用的是其他用戶,比如:nobody nogroup運行,則后面相應的配置中用戶/組都設置為nobody nogroup
然后我設置了#chown -R apache:apache /home/cvsroot
-rw-r--r-- 1 apache apache 55296 Jan 5 19:40 myproj.db
drwxrwxr-x 3 apache apache 4096 Oct 24 13:04 CVSROOT/
drwxrwxr-x 2 apache apache 4096 Aug 30 19:47 some_proj/
此外還在/home/cvsroot/CVSROOT中設置了:
chmod 664 readers writers passwd
在apche/cgi-bin目錄中創建腳本cvstrac:
#!/bin/sh
/usr/bin/cvstrac cgi /home/cvsroot
設置腳本可執行:
chmod +x /home/apache/cgi-bin/cvstrac
從 http://cvs.server.address/cgi-bin/cvstrac/myproj 進入管理界面
缺省登錄名:setup 密碼 setup
對于一般用戶可以從:
http://cvs.server.address/cgi-bin/cvstrac/myproj
修改登錄密碼,進行BUG報告等,
更多使用細節可以在使用中慢慢了解。
備注:
在inetd里加入cvspserver服務:
cvspserver stream tcp nowait apache /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver
xietd的配置文件:%cat cvspserver
service cvspserver
{
disable = no
socket_type = stream
wait = no
user = apache
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_failure += USERID
}
注意:這里的用戶設置成apache目的是和/home/cvsroot的所有用戶一致,并且必須讓這個這個用戶對/home/cvsroot/下的CVSROOT/passwd和cvstrac初始化生成的myproj.db有讀取權限。
對于前面提到的WinCVS在perference里設置:
CVSROOT欄輸入:username@ip.address.of.cvs:/home/cvsroot
Authenitication選擇:use passwd file on server side
可以了。
總結:
利用cvs + (WinCVS/cvsweb/cvstrac),構成了一個相對完善的跨平臺工作組開發版本控制環境。
相關資源:
CVS HOME:
http://www.cvshome.org
CVS FAQ:
http://www.loria.fr/~molli/cvs-index.html
相關網站:
http://directory.google.com/Top/Computers/Software/Configuration_Management/Tools/Concurrent_Versions_System/
CVS 免費書:
http://cvsbook.red-bean.com/
CVS 命令的速查卡片:
http://www.refcards.com/about/cvs.html
WinCVS:
http://www.wincvs.org
CVSTrac: A Web-Based Bug And Patch-Set Tracking System For CVS
http://www.cvstrac.org