經(jīng)驗(yàn)總結(jié):SVN與CVS的區(qū)別大全
本節(jié)講解SVN與CVS的區(qū)別,主要包括是否更好的沖突標(biāo)識(shí)與處理,是否有更多的本地/離線操作以及元數(shù)據(jù)管理問(wèn)題。
更好的沖突標(biāo)識(shí)與處理
通過(guò)是否進(jìn)行更好的沖突標(biāo)識(shí)與處理看SVN與CVS的區(qū)別:CVS和Subversion都支持通過(guò)分支與合并進(jìn)行并行開(kāi)發(fā),并可以自動(dòng)檢測(cè)到合并時(shí)的沖突(conflicts),并在合并結(jié)果中以<<<<<<…>>>>>>標(biāo)識(shí)合并的沖突部分。在CVS中,經(jīng)常會(huì)出現(xiàn)由于用戶的疏忽(如,沒(méi)有注意到?jīng)_突,或沒(méi)有完全處理好沖突)而將仍然帶有<<<<<<…>>>>>>沖突標(biāo)識(shí)符號(hào)的文件直接進(jìn)行提交(commit),從而在版本庫(kù)中產(chǎn)生垃圾版本。Subversion有效解決了CVS的以上問(wèn)題:Subversion記錄并保持文件的沖突狀態(tài),只有當(dāng)用戶明確執(zhí)行svnresolved命令后,該沖突狀態(tài)標(biāo)識(shí)才被復(fù)位,該文件才能被提交,從而大大減少了將仍然帶有<<<<<<…>>>>>>沖突標(biāo)識(shí)符號(hào)的文件直接進(jìn)行提交的可能性。
更多的本地/離線操作
通過(guò)是否有更多的本地/離線操作看SVN與CVS的區(qū)別:眾所周知,CVS客戶端的工作拷貝中包含了一個(gè)隱含目錄CVS,該目錄中記錄了客戶端需要的一些管理信息;與此類(lèi)似,Subversion的客戶端工作拷貝中也包含了一個(gè)隱含目錄.svn,該目錄中同樣記錄了客戶端需要的一些管理信息,如版本庫(kù)URL,當(dāng)前訪問(wèn)版本號(hào)等。與CVS不同的是,Subversion的.svn目錄中還包含了工作拷貝中每一個(gè)文件的一個(gè)“只讀的、干凈的”副本。正是由于該副本的存在,使得Subversion與CVS相比,可以執(zhí)行更多的本地/離線操作,即某些操作不需要訪問(wèn)版本庫(kù)服務(wù)器,因此不需要存在從客戶端到服務(wù)器的網(wǎng)絡(luò)鏈接,當(dāng)然也不消耗任何網(wǎng)絡(luò)帶寬,這進(jìn)一步增強(qiáng)了Subversion對(duì)廣域網(wǎng)的友好支持。
Subversion的以下命令可以進(jìn)行離線操作:
svnstatus-顯示工作拷貝上的本地修改概況;
svndiff-顯示工作拷貝上的本地修改細(xì)節(jié),比較修改前后的內(nèi)容;
svnrevert-撤銷(xiāo)工作拷貝上的本地修改;
元數(shù)據(jù)管理
通過(guò)元數(shù)據(jù)管理看SVN與CVS的區(qū)別:與CVS相比,Subversion增加了元數(shù)據(jù)(metadata)管理機(jī)制。即可以對(duì)版本庫(kù)中的文件或目錄附加任意的“屬性”(property),并記錄屬性的變化歷史,也就是對(duì)元數(shù)據(jù)進(jìn)行版本管理。一個(gè)Subversion屬性是一個(gè)“屬性名稱/屬性值”的二元組,如“BugNumber=100”就是一個(gè)屬性,可以將該屬性附加到版本N上,以說(shuō)明版本N改正了編號(hào)為100的BUG。
Subversion元數(shù)據(jù)的目的是提供附件的信息以滿足流程或過(guò)程自動(dòng)化的需要,以增強(qiáng)Subversion的管理能力和自動(dòng)化程度。Subversion自身就通過(guò)“屬性”來(lái)存儲(chǔ)一些特殊的信息。一個(gè)使用Subversion元數(shù)據(jù)的例子:可以在一些批處理的腳本程序或Subversion的鉤子程序(hooks)中創(chuàng)建、訪問(wèn)、修改“屬性”元數(shù)據(jù)來(lái)滿足流程自動(dòng)化的要求。
【編輯推薦】
- MyEclipse6.0集成SVN及配置詳解
- CentOS系統(tǒng)中安裝subversion并使用svn+ssh訪問(wèn)
- 基于Java的svn客戶端工具JavaSVN 1.1.0.beta發(fā)布
- 如何結(jié)合使用Subversion和Eclipse
- Subversion日期解析函數(shù)緩沖區(qū)溢出漏洞