您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源配置管理工具 > cvs
CVS-RCS
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/25 16:19:35 ] 推薦標(biāo)簽:

1. 簡(jiǎn)介

原始碼控制系統(tǒng)是一個(gè)必須能管理那些在軟體計(jì)劃發(fā)展時(shí)原始碼所做的改變。軟
體開發(fā)者需要一個(gè)完整的原始碼改變歷史紀(jì)錄, 以便於在發(fā)生問題時(shí),能夠追溯
到以前穩(wěn)定的版本。 既然原始程式碼對(duì)於任何的軟體計(jì)劃與開發(fā),都是花時(shí)間與
金錢中關(guān)鍵的部分,所以花時(shí)間藉由使用原始碼控制系統(tǒng)像 CVS 和 RCS 來(lái)安
全的保護(hù)(safe-guarding)原始程式碼是非常重要的。

CVS (Concurrent Version Control System) 是一個(gè)能讓很多程式開發(fā)者同時(shí)做
軟體開發(fā)的非常強(qiáng)大工具。它使用了RCS 的檔案規(guī)定格式但多了一層像應(yīng)用程式
介面的包裝,架在 RCS 的上層。

(譯注: RCS 是較老的版本控制,一個(gè)受 RCS 管制的檔案看起來(lái)是這樣子的
proj1.c,v ,CVS 沿用了一些 RCS 的規(guī)定。)

CVS 能夠紀(jì)錄你的檔案的歷史紀(jì)錄( 通常是原始程式碼,但是其他型態(tài)的檔案則
不一定)。 CVS 只存了不同版本中檔案的差異,而不是你所建立的每個(gè)版本中的
每個(gè)檔案。 CVS 也保持了一個(gè)何時(shí),何人更改檔案,為什麼更改檔案等等不同觀
點(diǎn)的歷史紀(jì)錄。

CVS 對(duì)於軟體的發(fā)行和多人同時(shí)更改目前原始碼的管理是非常的有幫助。 他并不
只是要對(duì)單一目錄下的檔案提供版本控制, 相反的,CVS 更提供了多層有組織的
目錄檔案的版本控制。 在這個(gè)目錄下除了你的原始程式碼外,還包含有一個(gè)
CVS 所建立的改版控制目錄與檔案。

這些目錄與檔案後被合并在一起形成一個(gè)軟體的發(fā)行。

CVS 能被使用在 "C", "C++", Java, Perl, HTML 和其他檔案。

2. 那一種版本控制系統(tǒng)適合我? CVS 或 RCS

CVS 實(shí)際上是架在 RCS 之上的, CVS 只是一堆更強(qiáng)大能控制一個(gè)有完整原始程
式碼階層目錄的工具。 我們非常強(qiáng)烈的推薦您使用 CVS,因?yàn)槟軌蚝苡袕椥缘?br /> 用 perl , korn bash shell 等 scripts 語(yǔ)言設(shè)定您自己的 CVS 系統(tǒng)。 請(qǐng)看一
些 korn shell scripts 的□例 [3]Shell Scripts 。

CVS 的優(yōu)點(diǎn)
* CVS 是非集中式的管理,使用者從儲(chǔ)存柜 (repository) 登出一個(gè)檔案目錄
, 并且有他自己的獨(dú)立的穩(wěn)定目錄樹。
* CVS 能夠在發(fā)行整個(gè)計(jì)劃的原始目錄樹中"蓋上印記" ("STAMP")。
* CVS 能夠使大家同時(shí)修改檔案。
* CVS 能夠用 shell scripts 或 perl 設(shè)定成檔案鎖住成單一使用或同時(shí)修改
檔案模式。

CVS 的缺點(diǎn)
* 需要比 RCS 多一點(diǎn)的管理。
* 非常成熟復(fù)雜的系統(tǒng),是目前應(yīng)用上已有的高技術(shù)。(感謝網(wǎng)
友tsaipaw@mars.seed.net.tw來(lái)信指證我的錯(cuò)誤)
* 有豐富的命令還有命令選項(xiàng),因此對(duì)於初學(xué)者來(lái)說(shuō)有很陡的學(xué)習(xí)曲線。 簡(jiǎn)單
使用的 shell scripts 可在這里找到 [4]Shell Scripts 。

RCS 的優(yōu)點(diǎn)
* RCS 非常容易設(shè)定。較少一些管理上的工作。
* RCS 用在一個(gè)每個(gè)人在一起工作的集中區(qū)域。
* RCS 對(duì)於簡(jiǎn)單的系統(tǒng)很有用。
* 非常嚴(yán)謹(jǐn)?shù)膯我粰n案修改模式 - 同步與同時(shí)是不允許的。

RCS 的缺失
* 由於使用單一目錄控制與檔案鎖住,不可能由很多的程式設(shè)計(jì)者做同時(shí)的開
發(fā)。因?yàn)閱我荒夸浵潞芏嗳藢?duì)檔案的改變,會(huì)造成 make 的使用錯(cuò)誤。
* 不能對(duì)整個(gè)軟體計(jì)劃戳上發(fā)行(releases)的印記。

這份文件也包含一些 shell scripts 以提供簡(jiǎn)單的命令來(lái)作登出 (check-out),
登錄 (check-in), 送交(commit) 檔案的動(dòng)作。 請(qǐng)看一些 shell scripts 的□
例 [5]Shell Scripts 。

對(duì)於 RCS 而言,請(qǐng)看 Linux CD-ROM 里面的RCS mini-howto。
_________________________________________________________________

cd /mnt/cdrom/Redhat/RPMS
ls -l howto-6.0-*.noarch.rpm
rpm -qpl howto-6* | grep -i rcs
_________________________________________________________________

或者看 [6]http://sunsite.unc.edu/LDP/HOWTO/mini/RCS-HOWTO.html
3. 設(shè)定 CVS

首先,你需要安裝 CVS 套件,在Redhat Linux 上請(qǐng)用
_________________________________________________________________

cd /mnt/cdrom/Redhat/RPMS
rpm -i rcs*.rpm
rpm -i cvs*.rpm
To see the list of files installed do -
rpm -qpl cvs*.rpm | less
_________________________________________________________________

然後用 j, k, CTRL+f, CTRL+D, CTRL+B, CTRL+U 或上下左右鍵, page up/down
瀏覽一下結(jié)果。 請(qǐng)用 'man less' 查看 less 的用法

在其他的 unix 機(jī)器上,你可能需要下載 RCS CVS 的 tar.gz 檔案, 然後根據(jù)
README, INSTALL 檔的指示來(lái)安裝 CVS。 請(qǐng)到 [7]http://www.cyclic.com 和
[8]http://www.loria.fr/~molli/cvs-index.html

3.1 CVS 的專有環(huán)境變數(shù)

下列的環(huán)境變數(shù)需要在 /etc/profile 檔中設(shè)定,/etc/profile 是對(duì)所有使用者
都有效的內(nèi)定值設(shè)定檔, 如果沒有設(shè)定 /etc/profile,那麼你應(yīng)該加這些設(shè)定
到你自己的設(shè)定檔 /.bash_profile 內(nèi)。
_________________________________________________________________

export EDITOR=/bin/vi
export CVSROOT=/home/cvsroot
export CVSREAD=yes
_________________________________________________________________

建造一個(gè)目錄來(lái)存你原始程式碼的儲(chǔ)藏柜 (repository) 并且給予 unix group
與 user 讀寫的權(quán)力。 (譯注:這個(gè)目錄下將會(huì)有很多你將來(lái)的原始碼。)
_________________________________________________________________

export CVSROOT=/home/cvsroot
mkdir $CVSROOT
chmod o-rwx $CVSROOT
chmod ug+rwx $CVSROOT
_________________________________________________________________

要初始化你的 CVS ,并且從現(xiàn)在開始把你的原始程式碼交給 CVS 管理。請(qǐng)做 -
_________________________________________________________________

cvs init

(譯注;這個(gè)初始化的動(dòng)作在於建造一個(gè)儲(chǔ)藏柜,是一個(gè)目錄$CVSROOT/。
同時(shí) $CVSROOT/CVSROOT 也在此時(shí)被建造,這個(gè)模組目錄下面是控制你CVS的administrati
on files,
里面的檔案做一些修改後,可以使CVS更強(qiáng)大好用。
$CVSROOT 下的目錄每個(gè)都是 module 的意思,一個(gè) module 可以是一個(gè)專案計(jì)劃。
但也可能是你把一個(gè)計(jì)劃拆成很多 module ,不同 module 交給不同的 team 去發(fā)展。)

# 一定要換到想要 CVS 控制的計(jì)劃目錄下喔
cd $HOME/my_source_code_dir

# 把整個(gè)目錄納入管理用 import 命令
cvs import my_source_code_dir V1_0 R1_0

(譯注:其實(shí)是 cd 到你的project下後,cvs import 模組 vendor_tag release_tag,
不一定要是目錄名稱 my_source_code_dir,vendor_tag, release_tag 只是識(shí)別用的東西
,
將來(lái)你可以用 tag 來(lái)存取你要的特定版本
這個(gè)動(dòng)作會(huì)在 $CVSROOT/ 下開個(gè)" 模組 "的目錄,然後把 my_source_code_dir 整個(gè)放
到 CVS 下管理,
$HOME/my_source_code_dir 沒用了。import 的動(dòng)作是把已經(jīng)寫好的一堆 code 擺進(jìn)來(lái),
如果將來(lái)想新增檔案xxxx.c,必須先寫好xxxx.c,再用 cvs add xxxx.c)

上一頁(yè)12345678910下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd