我的公司正在使用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