gpt4 book ai didi

关于存储内容而不是差异的 Git 设计决策

转载 作者:太空狗 更新时间:2023-10-29 12:56:26 25 4
gpt4 key购买 nike

谁能告诉我为什么 git 开发人员设计决定存储文件内容(blob),所以当内容更改时需要创建一个新的 blob?

我相信 subversion 存储修订而不是内容,所以当内容更改时,它只是跟踪两者之间的差异。难道 git 也不能​​这样做吗?存储内容而不是修订有什么好处?

最佳答案

我无法通过快速谷歌找到答案,但我相信它可以归结为一个简单的“没关系,因为磁盘空间很便宜”。

在源代码管理工具中存储修订是很棘手的。如果您只存储以前修订版和当前修订版之间的差异,您最终会遇到两个问题:

  1. 返回最新修订版(常见情况)需要最多的工作,因为代码需要通过将每个修订版组合在一起来组装该修订版。
  2. 一个修订版的任何错误(例如,磁盘故障)都会破坏对每个后续修订版的访问。

我相信大多数现代 VCS 实际上存储最新的修订版(出于性能原因)和差异,如果使用的话,用于及时返回,而不是向前。

关于关于存储内容而不是差异的 Git 设计决策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1452890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com