*VSS*和*CVS*介紹
*VSS*的全名是(VisualSourceSafe),是微軟公司開(kāi)發(fā)的VisualStudio開(kāi)發(fā)套件中
的版本控制部分,你可以通過(guò)從微軟購(gòu)買(mǎi)全套的VisualStudio套件,單獨(dú)購(gòu)買(mǎi)
SourceSafe來(lái)獲得。因此SourceSafe擁有非常好的技術(shù)支持和非常詳盡的技術(shù)文檔。
*CVS*的全名是(ConcurrentVersionsSystem,并發(fā)版本系統(tǒng)),它是一個(gè)開(kāi)源項(xiàng)
目,通過(guò)網(wǎng)站,你直接可以獲取到新的程序或者
新的源代碼,因此*CVS*的使用是完全免費(fèi)的。由于*CVS*僅可以在Unix平臺(tái)下使
用,在windows下出現(xiàn)了*CVS*NT服務(wù)器和Win*Cvs*
客戶端等開(kāi)源產(chǎn)品
功能
文件修改方式
*VSS*主要采用獨(dú)占模式(check_out,modify,check_in),也可以使用
(mutil_check_out,modify,check_in,merge)模式。在SourceSafe使用中獨(dú)占模
式使用的比較為成熟和普遍,獨(dú)占模式要求每個(gè)人都必須在改動(dòng)文件之前做撿出
(check_out)標(biāo)志,并且標(biāo)志了后的文件無(wú)法被其他人修改,即文件被獨(dú)占了,
在完成了修改后要及時(shí)撿入(check_in),釋放修改權(quán)。check_in和check_out也
是人們對(duì)版本控制開(kāi)始的印象。
*CVS*采用了(update,modify,commit)工作方式。這是一種可以并發(fā)的版本控制
方式,即每個(gè)人都可以修改自己可訪問(wèn)的任意代碼,代碼不會(huì)被一個(gè)人單獨(dú)占用,
兩個(gè)人甚至多個(gè)人可以修改同一份代碼,并且每個(gè)人的修改結(jié)果都不會(huì)被丟失。具
體的操作過(guò)程為:在修改代碼之前先做update,以使本地的代碼新,然后可以
修改代碼了,修改完畢后,直接commit自己的修改結(jié)果。如果*CVS*沒(méi)有發(fā)現(xiàn)沖
突,則代碼可以直接進(jìn)入*CVS*資源庫(kù),否則,*CVS*則標(biāo)出沖突的文件的沖突部分
讓你做合并。
文件歷史
在這一點(diǎn)上*VSS*和*CVS*的功能都很近似,他們都可以保存了每個(gè)文件的變化歷
史,并提供了一個(gè)自動(dòng)的版本號(hào),隨時(shí)可以取出任何文件的歷史版本。并和當(dāng)前版
本做比較。都提供了自定義版本的label功能。檢索歷史和自定版本都非常的方
便。*VSS*還特別提供了對(duì)時(shí)間段,或者操作人的歷史操作查詢,使一個(gè)人一段時(shí)
間內(nèi)對(duì)文件的操作一目了然。
項(xiàng)目版本管理
*VSS*并有直接對(duì)項(xiàng)目版本管理的支持,通過(guò)label來(lái)自定義一個(gè)版本號(hào),可以解決
部分項(xiàng)目版本管理的問(wèn)題,但這是遠(yuǎn)遠(yuǎn)不夠的,當(dāng)一個(gè)產(chǎn)品根據(jù)用戶需求產(chǎn)生一系
列不同的項(xiàng)目版本時(shí)使用SourceSafe將非常難以管理。
*CVS*提供了比較完善的項(xiàng)目版本管理。*CVS*中可以把當(dāng)前的工作定義成一個(gè)版
本,一旦生成版本了則版本中的數(shù)據(jù)被單獨(dú)取出,處于版本中的文件將保持只讀,
想獲得一個(gè)項(xiàng)目的歷史版本將輕而易舉。同時(shí),對(duì)于一個(gè)項(xiàng)目版本內(nèi)部可以調(diào)整使
用不同的文件版本。
分支功能。
*CVS*和*VSS*都提供了建立分支和合并分支的功能,但在操作中*VSS*首先要做項(xiàng)目
共享,引入要分支的項(xiàng)目或文件然后做分支操作.*CVS*則是直接對(duì)文件或者項(xiàng)目做
分支,分支操作同時(shí)建立。
開(kāi)發(fā)集成
*VSS*可以和VisualStudio中的其他開(kāi)發(fā)工具比如VB,VC++等做到直接集成,畢竟
都是微軟的產(chǎn)品么,同時(shí)由于*VSS*不光提供了圖形界面也提供了命令行模式,所
以在Windows操作系統(tǒng)中的大部分其他開(kāi)發(fā)工具都提供了對(duì)*VSS*操作的集成,只要
你安裝了*VSS*的客戶端。因此*VSS*在Windows平臺(tái)下使用將會(huì)非常方便。
*CVS*本身是Unix系統(tǒng)上開(kāi)發(fā)的,提供Unix上了命令行使用模式,因此和Unix上的
vi、Emacs可以直接和*CVS*一起工作,至于Unix系統(tǒng)下的圖形環(huán)境的開(kāi)發(fā)工具比如
eclipse,KDevelop和*cvs*集成都非常容易。本來(lái)在Windows平臺(tái)上*CVS*的支持并
不好,但近一段時(shí)間,隨著Win*CVS*易用性越來(lái)越好,Windows下的部分開(kāi)發(fā)工具
已經(jīng)提供了對(duì)Win*CVS*的支持,不過(guò)需要自己配置,而Windows下的Eclipse則直接
集成了*CVS*,開(kāi)發(fā)中可進(jìn)行*CVS*操作。從而使Windows下*CVS*使用也越來(lái)越方便了。
操作界面和配置管理
*VSS*在Windows下提供了單獨(dú)的客戶端和服務(wù)器端操作界面,界面和windows操作
系統(tǒng)風(fēng)格一致,入門(mén)和使用都非常方便。即使被集成到別的開(kāi)發(fā)工具中,它的使用
界面也基本一樣。通過(guò)工具SourceSafeAdmin,用戶管理,權(quán)限管理,系統(tǒng)配置非
常直觀,基本不需要任何培訓(xùn),直接看隨程序自帶的文檔可以準(zhǔn)確使用。配置工
具中包括了*VSS*數(shù)據(jù)的備份和恢復(fù),系統(tǒng)自帶文檔相當(dāng)詳盡。
*CVS*的界面以命令行為主,在Unix平臺(tái)下沒(méi)有圖形界面,部分圖形的開(kāi)發(fā)工具可
能內(nèi)嵌*CVS*客戶端,在Windows平臺(tái)下你可以選擇用*CVS*NT搭建服務(wù)器,用
Win*CVS*作為客戶端。*CVS*服務(wù)端配置在任何平臺(tái)下都需要通過(guò)命令來(lái)完成,配
置過(guò)程比較復(fù)雜。有時(shí)甚至要直接編寫(xiě)配置文件,同時(shí),客戶端方面的培植也有些
技巧。沒(méi)有經(jīng)過(guò)培訓(xùn)或者一段時(shí)間的研究和測(cè)試,無(wú)法正常使用*CVS*完成正常工
作和用戶、權(quán)限的培植管理等工作。
安全和網(wǎng)絡(luò)
*VSS*僅可在局域網(wǎng)內(nèi)部使用,服務(wù)器僅作為一個(gè)文件服務(wù)器,不需要運(yùn)行任何程
序或者起后臺(tái)服務(wù),但必須要共享一個(gè)可寫(xiě)的文件夾。這成為了目前局域網(wǎng)上容
易被病毒入侵的地方,必須定期做好病毒檢查工作,安裝病毒放火墻。安全性比較差。
*CVS*在局域網(wǎng)或者廣域網(wǎng)內(nèi)都可使用,作為服務(wù)器不需要共享任何資料,但必須
起服務(wù),占用系統(tǒng)資源?蛻舳丝梢允侨魏尾煌脚_(tái),都是通過(guò)TCP/IP和特定的端
口來(lái)訪問(wèn)*CVS*服務(wù)器,有不同安全等級(jí)的訪問(wèn)協(xié)議可供選擇。安全性強(qiáng)適用面廣。
結(jié)論
SourceSafe適合在局域網(wǎng)范圍內(nèi)的,以Windows平臺(tái)為主的中、小項(xiàng)目,以文件管
理為主要功能,使用方便,學(xué)習(xí)成本低,對(duì)服務(wù)器僅需要快速大容量的存儲(chǔ)器也是
它的優(yōu)勢(shì)。
*CVS*可滿足局域和廣域不同的網(wǎng)絡(luò)條件,提供不同級(jí)別安全性選擇,在一臺(tái)專(zhuān)門(mén)
服務(wù)器的配合下,客戶可以使用任何平臺(tái)開(kāi)發(fā)項(xiàng)目。對(duì)于已經(jīng)完成了開(kāi)發(fā)過(guò)程進(jìn)入
項(xiàng)目維護(hù)階段,或者進(jìn)入項(xiàng)目升級(jí)階段的項(xiàng)目,可提供完善的項(xiàng)目版本管理支持。
不過(guò)在操作和使用上學(xué)習(xí)成本比較高。