git vs hg

本文对比了分布式版本控制系统git和hg,从对象模型、工作目录与专用目录、分支与合并等方面进行了详细阐述,探讨了它们在存储方式、分支管理上的差异,并提供了使用git时的一些实用技巧。
摘要由CSDN通过智能技术生成

看到一篇文章,重新又勾起了我对版本控制工具的回忆和兴趣,拿出最好用的两种来比较比较吧:git和hg 。

 

1.对象模型(Object Model)

 

hg是采用增量式存储的版本控制系统,它保存相邻版本间的差异,通过在基础版本之上叠加差别的方式记录版本的更新,其组织方式自然采用链表。这点和subversion一致,数据库版本控制工具dbdeploy也采用相同原理。

hg中的基本对象有三种:file、manifestchangeset

  • changeset可以理解为版本的代名词了,它记录了该版本的信息,changeset间的采用链式索引,由一个根开始;
  • 每一个changeset持有对应版本的manifest,这是一个记录repo内当前工程版本下的各文件版本信息的列表;
  • 每个file对应的Revlog 文件才是真正存储各版本以及其数据节点的列表。

 

git并非采用增量式存储,而是为每个版本创建一个快照,最重要的组织结果是树。

基本对象有三种,自底向上为:blob、tree和commit(还有个tag, 和hg的bookmark类似,略了 )

  • blob存储的是repo中某文件的内容&#x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值