git和svn的对比

SVN

原理

Svn属于集中式版本控制和控制系统,保存所有文件的修订版本,协作人员连接到svn服务器,提取最新文件,并获取发送的更新。集中式的管理方式可以在一定程度上掌握其他开发人员正在做什么,并且管理员可以容易地掌握他们自己的开发权限,原理如图1。

图1  集中式版本控制工具的管理方式

记录

和CVS等大多数系统一样,它关注的是文件内容的具体差异:哪些文件做了更新,更新了哪些行。例如某工程由文件f1, f2组成,version2时,file1进行更新;version3时,file1和file2进行更新,则其存储的关键信息可理解为:【file1建立——version2时更新——version3时更新;file2建立——version3时更新。】

 

Git

记录

git只担心文件的整体数据是否已经改变,它不保存这些更改的差异数据。例如某项目由文件f1, f2组成,version2时,file1进行更新;version3时,file1和file2进行更新,则其存储的关键信息可理解为:【version1时,项目由file1_0和file2_0组成——version2时,项目由file1_1和file2_0组成;version3时,工程由file1_2和file2_1组成】

它类似于拍摄修改过的文件的快照并将其记录在一个小文件系统中。 每次发送更新时,它都会检查所有文件的指纹信息,获取文件的快照,然后保存指向快照的索引。为了提高性能,如果文件尚未修改,Git只会创建与上次保存的快照的连接,而不会再次保存。Git类似于一个小文件系统,同时提供很多基于此的工具。

特性

考虑数据的完整性。

在保存到Git之前,将用校验和的方式检查所有数据,并将此结果用作数据的唯一标识符和索引。 即不存在在更改文件或目录后Git并未察觉的情况。该功能建立在整个架构的基础上,作为Git的设计理念的一部分。 因此,如果文件在传输过程中变得不完整,或者磁盘损坏且文件数据丢失,Git可以立即检测到它。

操作于本地执行

如果用户想看到当前版本的文件和两周前的版本之间的区别,Git会取出两周前的快照和当前文件进行差异运算,此过程不用请求远程的服务器,而是直接从本地数据库读取并显示,因此用户任何时候的查阅都无需等待。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值