一、安裝
1 、 linux 安裝好后已經裝好了 cvs ,可用 rpm -qa|grep cvs 查看。
如果沒有安裝你可以在 Redhat 第 2 張光盤上找到,另外你也可以在網上下載到最新的 rpm 包。很容易找,其實不存在什么 linux 版本。
2 、創建 cvs 使用的目錄: mkdir /home/mycvstest
3 、創建 cvs 使用的用戶和組
groupadd cvs
useradd -g cvs -G cvs –d /home/mycvstest cvs
passwd cvs
4 、修改 mycvstest 的用戶: chown -R cvs:cvs /home/mycvstest
??????????????????????? chmod 755 /home/mycvstest
5 、切換用戶: su cvs
6 、創建源碼倉庫: mkdir /home/mycvstest/drcls drclgw
7 、初始化源碼倉庫: cvs -d /home/mycvstest/drcls init
?????????????????? cvs -d /home/mycvstest/drclgw init
??????????????? ???chmod 755 /home/mycvstest/drcls drclgw
初始化后可以在目錄下見到新增加的
CVSROOT
目錄,
cvs
所有的控制信息都在這個目錄里。
8 、退回到 root 用戶,建立 CVS 服務啟動文件, CVS 使用 xinetd 方式啟動。 ?
vi /etc/xinetd.d/cvspserver
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server= /usr/bin/cvs
server_args= -f --allow-root=/home/mycvstest/drcls
--allow-root=/home/mycvstest/drclgw pserver
log_on_failure += USERID
}
注:紅色的參數很重要,由于 xinetd 的 server_args 長度限制 , 當你想運行很多的單個倉庫的時候 ( 就是有很多個模塊時,比如 drcrgw), 但在 server_args 中無法輸入這么多單個的倉庫, 可以采取以下方式解決(現在實驗室 90 上就用的這種方式):
#> vi cvspserver
service cvspserver
{
??????? disable = no
??????? socket_type = stream
??????? wait = no
??????? user = root
??????? server = /usr/bin/cvs.run
??????? server_args =""
}
編寫 cvs.run 腳本
vi /cvsroot/cvs.run
#!/bin/bash
/usr/bin/cvs -f
--allow-root=/home/mycvstest/drcls
--allow-root= /home/mycvstest/drclgw
pserver
chmod a+x cvs.run
9 、加入 cvs 服務:
#>vi /etc/services
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service
10 、啟動 cvs 服務:
#> service xinetd restart
11 、檢查 cvspserver 服務是否已經啟動:
#> netstat -l |grep cvspserver
應該有如下結果:
tcp 0 0 *:cvspserver *:* LISTEN
?
二、使用和管理
1 、創建 cvs 用戶:
cd /home/mycvstest/drcls/CVSROOT
htpasswd –c passwd zhangcan (htpasswd
命令要安裝
apache
后才有,此命令創建一個
passwd
文件,里面內容為新建
cvs
用戶的用戶名和密碼
)
vi passwd ( 在新建的用戶后手工加入用戶屬于的組 cvs)
例如:
zhangcan:dgeagasdgasdr:cvs?
藍色字符串表示加密后的密碼。
2
、賦予用戶讀寫權限
手工在 CVSROOT 目錄中建立 readers 和 writers 文件。 Readers 文件中的用戶只有讀權限, writers 中的用戶具有讀寫權限,一行只寫一個用戶名。
3 、登錄 cvs
在客戶機 Linux 下面用命令:
export CVSROOT=:pserver:zhangcan@192.168.100.197:/home/mycvstest/drcls
cvs login
4 、向源碼倉庫中導入源碼
首先進入你本機上安裝源碼的目錄,然后使用以下命令:
cvs import –m “this is my soure code” drcls NISEC test start
-m 表示在 cvs 歷史文件顯示的消息, drclst 為你指定的源碼目錄名, NISEC 為供應商標簽, test 為發行標簽(這兩項可以不要), start 必須要。
5 、 checkout 出需要修改的源代碼
cvs co drcls? 在你的當前目錄下會發現多了一個 drcls 目錄,要修改的源碼都在里面
co
為
checkout
的簡寫
6 、提交修改
假設剛才對 readme 文件進行了修改,現在提交
cvs commit –m “modify a few of wrong words”? readme
命令執行后會提示版本已經改為 1.2 。
7 、 checkout 出以前的版本
如果想檢出以前的版本可以用以下命令:
cvs co –r 1.1 drcls/readme 或者 cvs –D yesterday drcls/readme
8 、刪除文件
若想從源碼倉庫中刪除 readme 文件,首先應把客戶機工作目錄中的 readme 文件刪除,然后使用 cvs 的刪除命令,最后提交刪除,流程如下:
rm readme
cvs rm readme
cvs commit –m “ 現在不需要這個 readme 文件 ”? readme
如果系統類似錯誤: cannot remove file `INSTALL' which has a numeric sticky tag of `1.1'
可以用命令
cvs update –A readme
后再刪除文件。
以上為火山哥提供的,以下是我添加的部份:
1.在reader和writes文件中添加使用用戶時要注意,當在reader中添加了某一只讀用戶后就不要在writers中添加此用戶,如果在兩個文件中都添加同一用戶的話,在使用cvs時,CVS服務器會把此用戶當做只讀用戶看待,當使用一些命令如import時會產生權限問題,以下是linux關于此問題的說明:
/* This command has the potential to modify the repository, so
? ?* we check if the user have permission to do that.
? ?*
? ?* (Only relevant for remote users -- local users can do
? ?* whatever normal Unix file permissions allow them to do.)
? ?*
? ?* The decision method:
? ?*
? ?*? ? If $CVSROOT/CVSADMROOT_READERS exists and user is listed
? ?*? ? in it, then read-only access for user.
? ?*
? ?*? ? Or if $CVSROOT/CVSADMROOT_WRITERS exists and user NOT
? ?*? ? listed in it, then also read-only access for user.
? ?*
? ?*? ? Else read-write access for user.
? ?*/
只有注冊用戶登錄后才能發表評論。 | ||
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
![]() |
||
相關文章:
|
||
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|