多角度分析SVN與CVS優(yōu)缺點
本節(jié)向大家簡單描述一下SVN與CVS優(yōu)缺點分析,在學(xué)習(xí)SVN的過程中你可能會遇到這樣的問題,在這里和大家分享一下,希望通過本節(jié)的學(xué)習(xí),大家對SVN與CVS優(yōu)缺點有個清楚地認(rèn)識。下面是具體介紹。
SVN與CVS優(yōu)缺點分析
所有的文檔都顯示SVN可以取代CVS,同時SVN的問題和缺點都被隱藏了。不幸的是,我們并不認(rèn)為SVN是CVS的替代品,盡管很多缺陷都被修改了。更有甚者,它甚至讓人重回VSS。CVS和SVN的比較類似與比較C++和Java。很明顯CVS和SVN都遠(yuǎn)比SourceSafe強(qiáng)大的多,如同C++和Java比Basic強(qiáng)大的多。CVS代表了幾乎代碼控制系統(tǒng)的所有功能項,盡管有時他的實現(xiàn)并不很方便。SVN,修正并添加了一些CVS并不擁有功能。例如,創(chuàng)建標(biāo)志和分支dubious,你在編輯文件是其他人不會有任何通知。這有點象Java的發(fā)明者:他們認(rèn)為你不需要指針?biāo)麄兙驮贘ava里面取消了指針,Java里也沒有操作符重載。
SVN并不是CVS的替代品。他只是個不同的系統(tǒng),類似于CVS。它有些特有的功能,足以作為采用它的理由。這些功能使他更適合于開發(fā)環(huán)境,例如對PowerBuilder。下面你可以找到兩者的相對優(yōu)勢、劣勢。我們假設(shè)余下的東西兩者沒有什么大差別。如果你對兩者都舉棋不定,我們建議試試兩個系統(tǒng),注意觀察下面幾個指標(biāo)。你也可以到網(wǎng)上看看兩者之間的討論。
注意:這份評價表并不代表最終意見,兩個系統(tǒng)仍然在開發(fā)之中。
編號對比項
CVSVsSVN
===========================
1存儲類型格式
CVS是個基于RCS文件的版本控制系統(tǒng)。每個CVS文件都不過是普通的文件,加上一些額外信息。這些文件會簡單的重復(fù)本地文件的樹結(jié)構(gòu)。因此,不必?fù)?dān)心有什么數(shù)據(jù)損失,如果必要的話你可以手工修改RCS文件。
------------------------------
SVN是基于關(guān)系數(shù)據(jù)庫的(BerkleyDB)或一系列二進(jìn)制文件的(FS_FS)。一方面這解決了許多問題(例如,并行讀寫共享文件)以及添加了許多新功能(例如運行時的事務(wù)特性。)。然而另一方面,數(shù)據(jù)存儲由此變得不透明,或是說并不那么用戶友好了。那就是為什么工具軟件,對倉庫(數(shù)據(jù)庫)變得那么重要了。
===========================
2速度
SVN與CVS優(yōu)缺點中速度的比較,CVS比較慢。
------------------------------
整體而言,由于架構(gòu)實現(xiàn)的不同,SVN的確比CVS快很多。在網(wǎng)絡(luò)上它只傳輸很少的信息并支持更多的離線模式的功能。但這也是有代價的。速度的代價就是巨大的存儲(完全備份所有的工作文件)。
===========================
3標(biāo)志&分支(!!!重要)
在我們看來,這些實現(xiàn)是適宜的。
------------------------------
SVN開發(fā)員自認(rèn)為把采用標(biāo)志和分支而拋棄了其他三件東西是件了不起的事。實際上這意味著他們把這個概念替換為在檔案庫內(nèi)部復(fù)制文件或目錄以便保存日志。這樣一來,無論標(biāo)志創(chuàng)建還是分支創(chuàng)建都只是倉庫內(nèi)部的文件復(fù)制了。在SVN的開發(fā)員看來,這是個很優(yōu)雅的決策,這讓生活變得如此簡便。而我們看來,這絲毫沒有什么值得驕傲之處。對分支而言,事情還不怎么糟糕,現(xiàn)在分支不過是在倉庫內(nèi)部的一個單獨的目錄而已了,不象早期還有些什么交錯。對標(biāo)志而言,事情就不那么妙了。你已經(jīng)不能對代碼加標(biāo)志了,這個功能就這么沒了。在某種程度上說,SVN全文件編號補(bǔ)足了這個缺陷,SVN里整個倉庫都有版本號,但不是針對單個文件。當(dāng)然,如果你認(rèn)為一個符號標(biāo)志比一個四位編碼有效的話,我們業(yè)無話可說。
===========================
4元數(shù)據(jù)
SVN與CVS優(yōu)缺點分析中元數(shù)據(jù)比較。CVS只允許存儲文件。
------------------------------
SVN允許一個文件有任意都的可命名屬性。功能十分完全,但不知到有什么用。
===========================
5文件類型
CVS最初是為文本文件存儲而設(shè)計的。因此其他文件類型(二進(jìn)制,統(tǒng)一碼)文件的支持幾乎沒有,如需要的話則要有其他信息,并且客戶端服務(wù)器端都要調(diào)整。
------------------------------
SVN會關(guān)心所有的文件類型,不需要你來手工操作。
===========================
6滾回
SVN與CVS優(yōu)缺點比較中回滾比較。CVS允許任意的滾回,在任意一個已遞交的版本上,盡管著要花些時間(所有的文件都要分別處理)。
------------------------------
SVN不允許遞交后滾回。我們建議把倉庫里好的狀態(tài)版本加到末尾,覆蓋掉損壞的版本。而損壞的版本無論如何也是會存在數(shù)據(jù)庫里的。(svn的滾回操作實際上是merge操作)
===========================
7事務(wù)
SVN與CVS優(yōu)缺點分析中事務(wù)比較。CVS中的“零或一”事務(wù)原則根本沒有實現(xiàn)。如果檢入幾個文件的話(加到服務(wù)器上),很有可能部分文件完成了,而另幾個沒有。做為一個潛規(guī)則,手工糾正這些并且對余下的文件(而不是所有文件)一一重復(fù)檢入。這樣這些文件將在兩階段中被檢入。但至今為止,因為這個功能缺少而導(dǎo)致的數(shù)據(jù)倉庫損壞的案例還沒有出現(xiàn)過。
------------------------------
SVN的確支持“零或一”事務(wù)原則,這是SVN的一大優(yōu)勢。
===========================
8可用性
CVS可以用在你需要的地方,支持完善。
------------------------------
SVN并未廣泛運用,一些支持項目仍然沒有實現(xiàn)。本節(jié)關(guān)于SVN與CVS優(yōu)缺點分析介紹到這里。
【編輯推薦】















 
 
 

 
 
 
 