标签:客户 服务器端 移动 追踪 分布 指南 工作效率 sha 二进制文件
现在目前代码仓库比较流行的应该就属于git和svn的天下了,前几年的时候svn还是比较火的,首先简单易懂,而且简单的冲突解决本地解决一下就好了,其他的基本上没什么复杂的,单纯不建分支的话git和svn相对来说区别还不是特别大,而且这个svn要更好一些,但是既然使用了git没有不建分支的.下面我们就来说说这两个的区别.SVN版本库安全性很差,是管理员头痛的问题。
● SVN版本库服务器端历史数据被篡改,或者硬盘故障导致历史数据被篡改时, 客户端很难发现。管理员的备份也会被污染。
● SVN作为集中式版本控制系统,存在单点故障的风险。备份版本库的任务非常繁重。
Git在这方面完胜SVN。首先Git是分布式版本控制系统,每个用户都相当于一份备份, 管理员无需为数据备份而担心。再有Git中包括提交、文件内容等都通过SHA1哈希保证数据的完整性, 任何恶意篡改历史数据都会被及时发现从而被挫败。
2.对合并更好的支持,更少的冲突,更好的冲突解决
因为Git基于对内容的追踪而非对文件名追踪,所以遇到一方或双方对文件名更改时, Git能够很好进行自动合并或提供工具辅助合并。而SVN遇到同样问题时会产生树冲突, 解决起来很麻烦。
Git的基于DAG(有向非环图)的设计比SVN的线性提交提供更好的合并追踪, 避免不必要的冲突,提高工作效率。这是开发者选择Git、抛弃SVN的重要理由。
3.十条使用Git的理由
更多的十条喜欢Git的理由,参见 《Git权威指南》 第11-21页。
● 异地协同工作
● 现场版本控制
● 重写提交说明
● 无尽的后悔药
● 更好用的提交列表
● 更好的差异比较
● 工作进度保存
● 作为SVN前端实现移动办公
● 无处不在的分页器
● 快
什么情况推荐使用SVN?
SVN具有的悲观锁的功能,能够实现一个用户在编辑时对文件进行锁定,阻止多人同时编辑 一个文件。这一悲观锁的功能是 Git 所不具备的。
对于以二进制文件 (Word文档、PPT演示稿) 为主的版本库,为避免多人同时编辑造成合并上的困难, 建议使用SVN做版本控制。
标签:客户 服务器端 移动 追踪 分布 指南 工作效率 sha 二进制文件
原文地址:http://blog.51cto.com/itengxun/2140464