【版本控制】git,svn,cvs 粗略比较

版本控制已经有很多年历史了,也出现了很多版本控制解决方案,但是有一些因为安全性低、不支持跨平台、不支持并发修改而逐渐淡出了人们的视野。

这篇文章就来比较一下时下最火的三个版本控制工具:git,svn,cvs。

并发修改

多个开发人员同时对同一个文件进行修改。

git,svn,cvs都支持。原来曾有个rcs的版本控制系统就不支持并发修改, 如果有人正在修改某一个文件,那么这个文件就会被锁定,直到修改完毕,下一个开发人员才能对该文件进行修改,而cvs是从rcs发展过来的,并做出了改进。

并发提交

版本控制中的版本记录是通过开发人员的提交操作来触发的,也就是说,要进行提交操作,才会记录版本号。

如果修改了多个文件后提交,cvs会一个一个的提交,每个文件被修改后,都会记录一个不同的版本号。而svn和git可以同时提交多个文件的修改,并且这多个文件记录的是同一个版本号。

cvs每个文件都会记录版本号,其占用的磁盘空间会比较大,但是如果出现bug的时候,cvs定位bug的时候只需要定位到某个版本号,就可以直接定位到某个文件,其找bug的速度是非常快的。svn和git就得从批量提交的多个文件中一个一个查找。

历史轨迹

如果一个文件的名称被修改了,cvs就无法追踪到修改文件名之前的历史版本。而svn和git即使文件名被修改了,他们依然可以追踪到这个文件的所有历史版本。

分布式

是否需要一台专门的服务器来运行这个版本控制。

cvs和svn是一个集中式的版本控制器,他们需要一台专门的版本控制服务器。而git是分布式的,他不要一台专门的服务器来运行这个版本控制。每个开发人员的电脑组成的网络就可以运行git,特别适合源代码的发布和交流,因此大部分开源项目都用git。

【版本控制】git,svn,cvs 粗略比较_第1张图片

你可能感兴趣的:(git,svn)