本教程非常错误:
混帐
才不是
存储变更集。混帐
单位计算
根据请求动态更改集。 (Git确实在包文件中进行增量压缩,但与Git的对象存储模型相比,包文件相当隐蔽,而Git的对象存储模型是通过哈希ID故意公开的。)
在讨论分布式与集中式时,这不是一个有用的区别。 (看到
kan的回答
同样。)
</醇>
以下是我在自己的书中关于分布式和集中式的说法:
这两种系统之间的主要区别在于集中式VCS具有指定的主存储库。可能存在主设备的多个副本,或甚至具有某种同步协议的多个主设备(例如,ClearCase MultiSite),但是只有一个主设备。他们的设计
假设
这艘单船,因此可以依赖它。
使用分布式VCS,没有指定的主存储库。用户通常拥有每个存储库的完整私有副本。这些私有副本之间的通信,至少在原则上是对等操作:两个存储库都不是更精通,并且冲突指示Alice和Bob都对相同文件的相同区域进行了更改。确实发生并需要某种解决方案。
它始终可以以集中方式使用分布式VCS:您只需将一个特定存储库指定为主版本,并协调对其的更新。但是,集中式系统通常提供诸如锁定源文件或目录,限制访问(用于读取和/或写入,到特定文件,目录和/或分支)等功能,等等。对于典型的DVCS来说,提供这些功能并不困难(尽管技术上不可能),而Git和Mercurial只是简单地说,至少在没有附加功能的情况下。使用提供锁定的CVCS,用户可以锁定文件(通常只有一个特定的版本ID),以防止其他用户进行相互冲突的更改。这在概念上更容易,但当然它可以禁止并行工作。