几种源代码管理工具分析:
工具 | 优点 | 缺点 |
SVN |
1、管理方便,集中式服务器更能保证安全性,逻辑明确,符合一般人思维习惯 2、代码一致性非常高 3、适合开发人数不多的项目开发 4、允许一个文件有任意多的可命名属性,会关注所有的文件类型 5、支持二进制文件,更容易处理大文件 6、支持空目录 |
1、服务器压力太大,数据库容量暴增 2、如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等 3、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题 |
Git |
1、适合分布式开发,强调个体 2、公共服务器压力和数据量都不会太大 3、速度快、灵活 4、任意两个开发者之间可以很容易的解决冲突 5、离线工作,管理代码成本低,不需要依赖服务器 6、部署方便。基本上下个命令就可以用 7、良好的分支机制,可以让主干代码保持干净 |
1、资料少(起码中文资料很少),学习成本比较大 2、学习周期相对而言比较长,要求人员素质比较高 3、不符合常规思维 4、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息 |
VSS |
1、易学易用,不需要外部的培训 2、使用 VSS 的费用是较低的,对用户的数目是没有限制的 3、VSS 是微软的产品,可以得到稳定的技术支持 |
1、VSS 不能提供对异地团队开发的支持 2、工作效率比较低,适合小团队进行开发 3、VSS 的配置管理的功能比较基本,不提供对流程的管理功能,不能提供对异地团队开发的支持,只能在 windows 平台上运行 4、VSS 的安全性不高 |
ClearCase |
1、ClearCase的功能比CVS、SourceSafe强大得多,ClearCase 提供 VSS, SVN所支持的功能,但不提供变更管理的功能 2、 ClearCase 提供 VSS, SVN所支持的功能,但不提供变更管理的功能 3、Rational 公司已被 IBM 公司收购,所以有可靠的售后服务保证 |
1、ClearCase价格昂贵,要经过培训后(培训费用昂贵),才能正常使用ClearCase 2、ClearCase 没有专用的安全性管理机制,依赖于操作系统。 |
CVS |
1、CVS允许任意的滚回,在任意一个已递交的版本上,尽管着要花些时间(所有的文件都要分别处理) 2、数据不易损失,CVS是个基于RCS文件的版本控制系统。 3、客户端能在UNIX, Windows和Mac OS上使用. 服务器端能在UNIX, 附有UNIX模拟层的Windows上使用 4、多名开发人员可以同时对一个文件进行修改.,允许合并 5、使用单一的主代码树,而不像RCS那样依赖多个目录 |
1、CVS速度比较慢 2、CVS只允许存储文件 3、不能传递变更到父仓库 4、不支持文件和目录拷贝 |