-
Rational ClearCase -
Perforce -
CA CCC -
Havest Merant PVCS -
Microsoft VSS,CVS
-
SVN -
GIT -
CVS
SVN
-
独立服务器 -
借助Apache运行
-
支持重命名。这对Java开发来说非常重要。为了得到更好的代码,开发中需要经常进行重构,重构就经常涉及到文件的重构名,而重命名CVS中是不被支持的。 -
开发的时候不一定要锁定。一方面导致重构不方便,另一方面不能离线开发,使用SVN就不同,可以带回家继续开发,回来后,提交就行了。 -
多平台。可以支持多个平台下的操作。 -
更好的客户端支持。一个在Windows下用的SVN客户端TortoiseSVN比较方便使用。 -
更好地与外围工具集成。各种各样的外围工具(主要是服务器端),满足多种需要。如果有需要,也可以自己写插件或管理脚本,开放的框架,允许我们这样做。 -
方便。比如,部署应用的时候,以前的做法是找出一个项目中修改过的文件,更新到服务器上去,可以在服务器上执行SVN export命令,把代码库中的最新版本导出,完成部署(也可以替换回老版本)。 -
速度与稳定性看起来都不错。
ClearCase是IBM Rational产品之一,是全球领先的软件配置管理工具,它广泛地应用于众多的企业级软件工程实践之中,拥有众多的企业级用户。CC提供C/S和B/S两种交媾的 配置管理解决方案,提供了全面的软件配置管理功能。
-
独有的存储库VOB(Version Object Bases)。
-
可视化的文化版本树。
-
并行开发
-
版本历史记录
-
自动的比较和版本间的合并
-
工作空间管理
ClearCase是集中式版本控制工具,是SCM管理工具其中的一种。是Rational公司开发的配置管理工具,类似于VSS,CVS的作用,但是功能比VSS,CVS强大的多。而且可以与Windows资源管理器集成使用,并且还可以与很多开发工具集成在一起使用。但是对配置管理员的要求比较高,安装比Windows还大,运行比蜗牛还慢,能使用ClearCase的一般是世界五百强企业。
GIT
GIT是一个开源的分布式版本控制工具,最初用于Linux内核开发的版本控制。GIT采用分布式版本库的范式,不必服务器端软件支持,使源代码的发布和交流极其方便。GIT最为出色的是它的合并功跟踪(merge tracing)能力。
-
更方便的merge。
分布式管理必然导致大量的Branch和Merge操作。因此分布式版本控制系统都特别注意这方面。在传统的CVS里面制作branch和merge简直就是噩梦,Subversion作为一个用于代替CVS的系统,专门改进了Brach操作。然而似乎没有人注意到,Branch是轻松了,但是merge呢?如果不能很方便的merge会,branch仍然是个噩梦。
-
更方便的管理
传统的版本控制系统使用中央仓库,一些仓库相关的管理就只能在仓库上进行。赋予开发团队每一个人中央仓库的管理权限是非常不好的。但是有时候确实会有比较不方便的地方。
-
更健壮的系统
分布式系统一般情况下总是比单服务端的系统要见状,因为当服务端一旦挂了,整个系统就不能运行了。然而分布式系统通常不会因为一脸哥哥节点而受到影响。
-
对网络的依赖性更低
虽然现在网络非常普及,但是并非随时随地都有告诉网络,甚至有时候根本没有网络可以访问。低速的网络会让人心情烦躁,有时候就呆呆地盯着屏幕上的commit进度,什么事情也干不了。而没有网络连接更为致命,你无法commit!这表示你进行任何改动以前都必须小心翼翼,否则你可能再也找不回你曾经写的一些代码了。
-
更少的仓库污染
如果你做一个模块,它不是太大,所以没有必要为它新建一个branch,但是它又不是那么小,不可能一次提交就做好。于是便会提交一些不完整的代码到仓库,有时候会导致整个程序无法运行,严重影响团队里其他人的开发。大多数人在这种情况下的解决办法是写完之后再提交。但是作为习惯了版本控制的人来说,进行不计后果的大幅修改是经常的事情,到后来突然发现自己先前的代码没有提交,就会后悔莫及了。如果是分布式系统的话就不会存在这样的问题,因为本地仓库的修改不会影响到别人的仓库。当你完成并测试以后,就可以在邮件列表里面说:我已经把在合格模块做好了,然后感兴趣的人就可以从你这里pull你的成果了。
GIT和SVN的比较
-
在很多情况下,GIT的速度远比SVN快。
-
SVN是集中式管理,GIT是分布式管理,分布式和集中式最大的区别在于:在分布式下,本地有个代码仓库,开发者可以在本地提交;而集中式版本控制,只有在服务器才有一个代码仓库,只能在服务器进行统一管理。
-
SVN使用分支比较笨拙,GIT可以轻松拥有无限个分支。
-
SVN必须联网才能正常工作,GIT支持本地版本控制工作。
-
旧版本的SVN会在每一个目录置放一个.svn, GIT指挥在根目录拥有一个.git
原文始发于微信公众号(网络安全等保测评):文档管理、配置管理工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论