对于普通的代码管理人来说,都差不多,基本功能都有,都能满足常规应用。
1.SVN优缺点优点: 1、 管理方便,逻辑明确,符合一般人思维习惯。 2、 易于管理,集中式服务器更能保证安全性。 3、 代码一致性非常高。 4、 适合开发人数不多的项目开发。 缺点: 1、 服务器压力太大,数据库容量暴增。 2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。 3、 不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。2.Git优缺点优点: 1、适合分布式开发,强调个体。 2、公共服务器压力和数据量都不会太大。 3、速度快、灵活。 4、任意两个开发者之间可以很容易的解决冲突。 5、离线工作。 缺点: 1、学习周期相对而言比较长。 2、不符合常规思维。 3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
Git是分布式代码管理工具,可以没有中心服务器,各个节点之间进行平等交互,这个特点非常适合想linux内核这种全球分布式开发的代码管理。比较适合代码量较大,分布比较广发的开发模式使用。
SVN是集中式代码管理,需要有一个中心服务器,各个节点之间的同步都需要中心服务器来协调,比较适合公司内部代码量较小的环境使用
就目前来看,git的试用量已经大幅领先于其他版本管理系统的使用量,而且像github这样的免费代码托管网站也非常流行,所以还是推荐使用git来进行代码管理。
git 分布式代码托管
svn 代码会统一并且有一个版本号。
git是分布式的,保密性较差,适合那种很多人一起开发的,比如linaro工程
svn适合那种小型工程,私有性较好