CVS(并行版本系统)和SVN(SubVersioN)是两个版本控制文件系统,在单个项目中进行协作的团队通常使用它们。这些系统使协作者可以跟踪所做的更改,并知道谁在开发哪个以及是否应将分支应用于主干。 CVS是两者中比较老的版本,它已成为很多人的标准协作工具。 SVN较新,它引入了许多改进来满足大多数人的需求。
Subversion(也称为SVN)是一个版本控制系统,用于维护文件的当前版本和先前版本(例如源代码,网页和文档)。它是CVS及其最兼容后继产品的直接升级。它也是一种开源技术,已广泛用于多个项目中,例如Apache Software Foundation,Free Pascal,MediaWiki和Google代码。
CVS使用客户端服务器体系结构 – 这意味着服务器存储特定项目的当前版本,并保存其历史记录。然后,客户端连接到服务器,以“检出(checkout)”在连接到服务器之前已完成的项目的副本。然后,客户可以处理该项目的副本,然后检查其以后所做的更改。除了允许一个客户端签入某个项目的副本外,CVS还允许多个客户端同时处理和签入同一项目。客户端将能够在他们自己的项目工作副本中修改文件,并将这些编辑发送到服务器。
Subversion提交(即创建一组临时更改并将其永久化)作为真正的原子操作(或一系列发生或不发生的数据操作)。 Subversion还允许用户重命名,复制,移动和/或删除文件。但是,这些文件将保留其完整的修订历史记录。该系统使用可解析的输出,本机客户端/服务器分层库设计以及作为廉价操作(与文件大小无关)的分支和标记。有用于PHP,Python,Perl和Java的语言绑定。Subversion的成本也取决于更改大小,而不是数据大小。
SVN的最大改进可能是添加了原子提交。原子提交允许完全或完全不应用每个提交。当服务器在提交过程中崩溃时,这可能非常有用。使用SVN,可以回滚提交,而CVS无法撤消部分提交。另一个附加功能是可以干净地重命名和移动存储库中的文件。使用SVN,已重命名或删除的文件仍带有其修订历史记录和元数据。 CVS也无法将任何新更改推送到父存储库,而可以使用某些工具在SVN中实现。 CVS根本不支持这些功能,或者这些功能不是其最初设计的一部分,并且经常对某些人造成很多问题。
就通过网络访问两者而言,两者均支持专有协议,可以通过SSH连接建立隧道以确保通过网络传输的信息的安全性。 SVN通过WebDAV + DeltaV添加了更多功能。该协议基于HTTP和HTTPS,为用户提供了另一个连接SVN的选项。
对于大多数刚开始使用SVN和CVS的人来说,SVN是两者之间更好的选择。 它为用户提供了满足其需求的正确功能集。 继续使用CVS的唯一原因是,如果您受困于很难迁移到SVN系统的旧系统。
总结
- 与更老的CVS相比,SVN较新且更先进;
- SVN允许原子提交,而CVS不允许;
- SVN允许重命名和移动,而CVS不允许;
- SVN允许将更改传播到父存储库,而CVS则不允许;
- SVN支持两种网络协议,而CVS仅支持一种;
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:CVS和SVN
本文链接:https://www.vsdiffer.com/vs/cvs-vs-svn.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。