我的公司正在使用CVS作爲我們事實上的源代碼控制標準。不過,我聽到很多人說SVN比較好。使用SVN比CVS有什麼優勢?
我知道SVN是更新的,但除此之外,我不熟悉它的好處。
我在尋找的是這兩個系統的一個很好的,簡潔的比較,指出了Java/Eclipse開發環境中每個系統的優缺點。
我的公司正在使用CVS作爲我們事實上的源代碼控制標準。不過,我聽到很多人說SVN比較好。使用SVN比CVS有什麼優勢?
我知道SVN是更新的,但除此之外,我不熟悉它的好處。
我在尋找的是這兩個系統的一個很好的,簡潔的比較,指出了Java/Eclipse開發環境中每個系統的優缺點。
CVS只跟蹤逐個文件的修改,而SVN跟蹤整個提交作爲新版本,這意味着更容易跟蹤項目的歷史。添加所有現代源代碼控制軟件都使用修訂概念的事實,因此從SVN遷移要比從CVS遷移要容易得多。
還有原子提交問題。雖然我只遇到過一次,但可能會有兩個人在CVS中一起犯下相互衝突,丟失一些數據並使您的客戶處於不一致的狀態。當發現時間較早時,這些問題並不重要,因爲您的數據仍然存在於某處,但在壓力較大的環境中可能會很痛苦。
最後,圍繞CVS開發的工具並不多。雖然像Git或Mercurial這樣新的有創意的工具肯定缺乏工具,但SVN在任何系統上都有相當大的應用程序基礎。
編輯2015:說真的,這個答案現在是7歲。忘記SVN,像其他人一樣使用Git!
在衆多比較:
http://wiki.scummvm.org/index.php/CVS_vs_SVN
現在,這是非常具體到該項目,但很多一般的東西apllies的。
臨顛覆:
- 支持版本的重命名/移動(不可能CVS):芬國昐,安德
- 支持目錄本身:這是可能的,除去他們,他們是版本:芬國昐, Ender
- 文件屬性是版本化的;沒有更多的「可執行位」地獄:芬國昐
- 總體版本號使構建版本測試和迴歸測試要容易得多:安德,芬國昐
- 原子提交:芬國昐
- 直觀(基於目錄的)分支和標籤:芬國昐
- 更容易鉤子腳本(前/後提交等):SumthinWicked(我用它的Doxygen提交後)
- 防止意外的衝突的文件提交:鹹馬,芬國昐
- 支持自定義「差異」命令:芬國昐
點- 離線的diff,而且他們瞬間:SEV
什麼是「fingolfin」?谷歌搜索使得它更容易混淆 – DuKes0mE 2015-05-15 12:57:39
Fingolfin和Ender只是該論壇的人物名稱:「每個參數背後都有一份同意這個特定論證是有效的人的名單。 ` – hinneLinks 2015-07-06 07:02:12
Subversion的書中有an appendix,詳細介紹從CVS重要的區別,這可以幫助你做決定。這兩種方法或多或少都是一樣的想法,但是SVN專門用於解決CVS中長期存在的缺陷,所以從理論上講,SVN將永遠是更好的選擇。
SVN擁有CVS 3個主要優點
你應該看一看在Git而不是SVN。這是一個非常快速和非常強大的DVCS。它不像SVN那麼友好,但它在這方面有所改進,而且它不是難以學習的。
BTW:CVSNT支持原子提交
有一點不可忽視的是生態系統。我在一家CVSNT商店工作,默認情況下,我發現越來越多的開源工具支持SubVersion。
作爲一個在CVS和SVN之間切換的人(最初我們用cvs2svn切換了所有的項目,然後決定在新項目中只使用svn),下面是一些問題,我們有過。
您可能還會選擇將最新的代碼從CVS遷移到SVN並凍結您當前的CVS回購。這將使遷移變得更加容易,並且您還可以在舊的CVS回購中構建舊版本。
好吧,我覺得有些東西讓svn真棒。
Migra使用cvs2svn可以在幾個小時內輕鬆完成。
我想要git vs subversion和git vs mercurial的相同答案 – 2017-01-15 20:12:06