shs*_*mer 59 svn cvs version-control
我的公司正在使用CVS作为源控制的事实标准.但是,我听说很多人都说SVN更好.
我知道SVN比较新,但除此之外,我对它的好处并不熟悉.
我正在寻找的是两个系统的良好,简洁的比较,注意到Java/Eclipse开发环境中每个系统的优点和缺点.
Vin*_*ert 61
CVS仅跟踪逐个文件的修改,而SVN将整个提交跟踪为新修订,这意味着更容易跟踪项目的历史记录.添加所有现代源控制软件都使用修订概念的事实,因此从SVN迁移比从CVS迁移要容易得多.
还存在原子提交问题.虽然我只遇到过一次,但有可能2个人在CVS中相互冲突,相互冲突,丢失一些数据并使客户端处于不一致状态.如果早期发现这些问题并不重要,因为您的数据仍然存在于某处,但在压力很大的环境中可能会很痛苦.
最后,围绕CVS开发的工具不多了.虽然像Git或Mercurial这样的新工具和新工具肯定缺乏工具,但SVN在任何系统上都有相当大的应用程序基础.
编辑2015:说真的,这个答案现在已经7年了.忘记SVN,像其他人一样使用Git!
Mic*_*tum 19
众多比较中的一个:
http://wiki.scummvm.org/index.php/CVS_vs_SVN
现在这对于那个项目来说非常具体,但是很多东西都是普遍的.
Pro Subversion:
- 支持版本化重命名/移动(CVS不可能):Fingolfin,Ender
- 本机支持目录:可以删除它们,并且它们是版本化的:Fingolfin,Ender
- 文件属性已版本化; 没有更多的"可执行位"地狱:Fingolfin
- 总体版本号使构建版本控制和回归测试变得更加容易:Ender,Fingolfin
- 原子提交:Fingolfin
- 直观(基于目录)分支和标记:Fingolfin
- 更简单的钩子脚本(提交前/后提交等):SumthinWicked(我在提交后将其用于Doxygen)
- 防止意外提交冲突文件:Salty-horse,Fingolfin
- 支持自定义'diff'命令:Fingolfin
- 离线差异,他们是即时的:sev