CVS系統(tǒng)
簡(jiǎn)介
CVS是一個(gè)C/S系統(tǒng),是一個(gè)常用的代碼版本控制軟件。主要在開(kāi)源軟件管理中使用。與它相類(lèi)似的代碼
版本控制軟件有
subversion。
工作模式如下: CVS服務(wù)器(文件版本庫(kù))
CVS(Concurrent Versions System)版本控制系統(tǒng)是一種GNU軟件包,主要用于在多人開(kāi)發(fā)環(huán)境下的源碼的維護(hù)。Concurrent有并發(fā)的、協(xié)作的、一致的等含義。實(shí)際上CVS可以維護(hù)任意文檔的開(kāi)發(fā)和使用,例如共享文件的編輯修改,而不僅僅局限于程序設(shè)計(jì)。CVS維護(hù)的文件類(lèi)型可以是文本類(lèi)型也可以是二進(jìn)制類(lèi)型。CVS用Copy-Modify-Merge(拷貝、修改、合并)變化表支持對(duì)文件的同時(shí)訪問(wèn)和修改。它明確地將源文件的存儲(chǔ)和用戶(hù)的工作空間獨(dú)立開(kāi)來(lái),并使其并行操作。CVS基于客戶(hù)端/服務(wù)器的行為使其可容納多個(gè)用戶(hù),構(gòu)成網(wǎng)絡(luò)也很方便。這一特性使得CVS成為位于不同地點(diǎn)的人同時(shí)處理數(shù)據(jù)文件(特別是程序的源代碼)時(shí)的首選。
所有重要的免費(fèi)軟件項(xiàng)目都使用CVS作為其程序員之間的中心點(diǎn),以便能夠綜合各程序員的改進(jìn)和更改。這些項(xiàng)目包括GNOME、KDE、THE GIMP和Wine等。
CVS的基本工作思路是這樣的:在一臺(tái)服務(wù)器上建立一個(gè)源代碼庫(kù),庫(kù)里可以存放許多不同項(xiàng)目的源程序。由源代碼庫(kù)管理員統(tǒng)一管理這些源程序。每個(gè)用戶(hù)在使用源代碼庫(kù)之前,首先要把源代碼庫(kù)里的項(xiàng)目文件下載到本地,然后用戶(hù)可以在本地任意修改,最后用CVS命令進(jìn)行提交,由CVS源代碼庫(kù)統(tǒng)一管理修改。這樣,就好像只有一個(gè)人在修改文件一樣,既避免了沖突,又可以做到跟蹤文件變化等。 CVS是并發(fā)版本系統(tǒng)(Concurrent Versions System)的意思,主流的開(kāi)放源碼網(wǎng)絡(luò)透明的版本控制系統(tǒng)。CVS對(duì)于從個(gè)人開(kāi)發(fā)者到大型、分布團(tuán)隊(duì)都是有用的。
它的客戶(hù)機(jī)/服務(wù)器存取方法使得開(kāi)發(fā)者可以從任何因特網(wǎng)的接入點(diǎn)存取最新的代碼。它的無(wú)限制的版本管理檢出(check out:注1)的模式避免了通常的因?yàn)榕潘鼨z出模式而引起的人工沖突。 它的客戶(hù)端工具可以在絕大多數(shù)的平臺(tái)上使用。
CVS被應(yīng)用于流行的開(kāi)放源碼工程中,像Mozilla,GIMP,XEmacs,KDE和GNOME等。 那么它到底怎么樣?
你可能會(huì)說(shuō),它非常棒,但是對(duì)于"我"來(lái)說(shuō)它能做什么?首先,基本的 :一個(gè)版本控制系統(tǒng)保持了對(duì)一系列文件所作改變的歷史記錄。對(duì)于一個(gè)開(kāi)發(fā)者來(lái)說(shuō),那就意味著在你對(duì)一個(gè)程序所進(jìn)行開(kāi)發(fā)的整個(gè)期間,能夠跟蹤對(duì)其所作的所有改動(dòng)的痕跡。對(duì)你來(lái)說(shuō),有沒(méi)有出現(xiàn)過(guò)由于在命令行上按錯(cuò)鍵而導(dǎo)致一天的工作都白費(fèi)的情況呢?版本控制系統(tǒng)給了你一個(gè)安全的網(wǎng)絡(luò)。
版本控制系統(tǒng)對(duì)任何人都有用,真的。(畢竟,誰(shuí)不愿意使用一個(gè)安全的網(wǎng)絡(luò)呢?)它們經(jīng)常被軟件開(kāi)發(fā)團(tuán)隊(duì)使用。在團(tuán)隊(duì)中工作的開(kāi)發(fā)者需要能夠調(diào)整他們的各自的修改;一個(gè)集中式版本控制系統(tǒng)允許那樣做。
代碼集中的配置
個(gè)人開(kāi)發(fā)者希望一個(gè)版本控制系統(tǒng)的安全網(wǎng)絡(luò)能夠運(yùn)行在他們的本地的一臺(tái)機(jī)器上。然而,開(kāi)發(fā)團(tuán)隊(duì)需要一個(gè)集中的服務(wù)器,所有的成員可以將服務(wù)器作為倉(cāng)庫(kù)來(lái)訪問(wèn)他們的代碼。在一個(gè)辦公室中,沒(méi)有問(wèn)題 --只是將倉(cāng)庫(kù)連到本地網(wǎng)絡(luò)上的一臺(tái)服務(wù)器上就行了。對(duì)于開(kāi)放源碼項(xiàng)目...噢, 還是沒(méi)有問(wèn)題,這要感謝因特網(wǎng)。CVS內(nèi)建了客戶(hù)機(jī)/服務(wù)器存取方法,所以任何一個(gè)可以連到因特網(wǎng)上的開(kāi)發(fā)者都可以存取在一臺(tái)CVS服務(wù)器上的文件。