
What are the advantages of using SVN over CVS?我的公司正在使用CVS作为我们事实上的源代码控制标准。但是,我听到很多人说SVN更好。 我知道SVN较新,但除此之外,我不了解它的好处。 我正在寻找的是两个系统的简洁明了的比较,并指出了在Java / Eclipse开发环境中每个系统的优缺点。 CVS仅按文件跟踪修订,而SVN则将整个提交作为新修订进行跟踪,这意味着更容易跟踪项目的历史记录。再加上所有现代源代码控制软件都使用修订的概念,因此从SVN迁移比从CVS迁移要容易得多。 还有一个原子提交问题。虽然我只遇到过一次,但是可能有2个人在CVS中一起提交可能会相互冲突,丢失一些数据并使您的客户端处于不一致状态。尽早发现这些问题并不重要,因为您的数据仍在某个地方,但是在压力很大的环境中可能会很痛苦。 最后,围绕CVS开发的工具不多了。虽然像Git或Mercurial这样的新工具确实缺少工具,但SVN在任何系统上都有相当大的应用程序。 EDIT 2020:说真的,这个答案现在已经12岁了。忘记SVN,像其他人一样使用Git! 众多比较之一: http://wiki.scummvm.org/index.php/CVS_vs_SVN 现在这是非常特定于该项目的,但是通常有很多内容。 专业版Subversion:
与CVS相比,SVN具有3个主要优势
Subversion本书的附录详细介绍了与CVS的重要区别,这可能有助于您做出决定。两种方法大致相同,但是SVN是专门为修复CVS中长期存在的缺陷而设计的,因此,至少从理论上讲,SVN永远是更好的选择。 不可忽视的一件事是生态系统。我在CVSNT商店工作,默认情况下,我发现越来越多的开源工具支持SubVersion。 我将支持Eridius对Git的建议,但将其扩展到其他DRCS(分布式修订控制系统),例如Mercurial和义卖市场。 这些产品是相当新的产品,目前的工具和与它们的集成度似乎很低(根据我的初步研究)。我想说的是,它们最适合那里的电源开发人员(在这里;-))。 另一方面,CVS当前不为您做什么?从最初的问题开始,您实际上并没有任何问题," CVS很烂,我该怎么用呢?" 您必须权衡任何潜在迁移的成本与收益。对于一个现有项目,我认为很难证明其合理性。 作为一个正在CVS和SVN之间切换的人(最初我们使用cvs2svn切换了所有项目,然后决定只在新项目上使用svn进行过渡),这是我们遇到的一些问题拥有。
btw:CVSNT支持原子提交 CVS(并行版本系统)和SVN(SubVersioN)是两个版本控制文件系统,在单个项目中进行协作的团队通常使用它们。这些系统使协作者可以跟踪所做的更改,并知道谁在开发哪个以及是否应将分支应用于主干。 CVS是两者中比较老的版本,它已成为很多人的标准协作工具。 SVN较新,它引入了许多改进来满足大多数人的需求。 您应该看看Git而不是SVN。 DVCS快速而强大。它不像SVN那样用户友好,但是在这方面它正在改进,并且学习起来也不难。 好吧,我觉得有些事情使svn很棒。 使用cvs2svn可以在几个小时内轻松完成迁移。 您还可以选择仅将最新代码从CVS迁移到SVN并冻结当前的CVS回购。这将使迁移更加容易,并且您还可以在旧的CVS存储库中构建旧版本。 |