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

1. 簡介

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

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

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

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

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

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

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

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

CVS 實際上是架在 RCS 之上的, CVS 只是一堆更強大能控制一個有完整原始程
式碼階層目錄的工具。 我們非常強烈的推薦您使用 CVS,因為您能夠很有彈性的
用 perl , korn bash shell 等 scripts 語言設(shè)定您自己的 CVS 系統(tǒng)。 請看一
些 korn shell scripts 的□例 [3]Shell Scripts 。

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

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

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

RCS 的缺失
* 由於使用單一目錄控制與檔案鎖住,不可能由很多的程式設(shè)計者做同時的開
發(fā)。因為單一目錄下很多人對檔案的改變,會造成 make 的使用錯誤。
* 不能對整個軟體計劃戳上發(fā)行(releases)的印記。

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

對於 RCS 而言,請看 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 上請用
_________________________________________________________________

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é)果。 請用 'man less' 查看 less 的用法

在其他的 unix 機器上,你可能需要下載 RCS CVS 的 tar.gz 檔案, 然後根據(jù)
README, INSTALL 檔的指示來安裝 CVS。 請到 [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 是對所有使用者
都有效的內(nèi)定值設(shè)定檔, 如果沒有設(shè)定 /etc/profile,那麼你應該加這些設(shè)定
到你自己的設(shè)定檔 /.bash_profile 內(nèi)。
_________________________________________________________________

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

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

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

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

cvs init

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

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

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

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

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