我正在阅读git如何存储数据/文件。我无法理解存储文件的整个内容而不是差异的优势。
据我所知,如果git存储每个文件之间的差异,git将需要一段时间来重建原始文件。
同时,存储整个内容而不是差异会增加回购的大小。
我是对的吗?有谁能详细解释一下我?
答案 0 :(得分:3)
从一个角度来看,这并不重要。
假设您有两个版本控制系统,品牌X和品牌Y(我们已经覆盖了实际品牌名称,因此确保您无法了解内部存储系统的工作原理)。
然后我们为品牌X提供一个命令,以查看特定历史文件的特定版本,以及品牌Y的另一个命令(具有相同用途),例如:
xshowme tag:path/to/file
yshowme tag:path/to/file
两个命令都显示相同的数据。我们将此扩展到xcheckout
和ycheckout
,依此类推,但始终保持更高级别的命令,而不是故意暴露内部工作的命令。
如果我告诉你一个品牌使用增量而另一个使用面向内容的商店,你能告诉我哪一个是哪个?如果是这样,怎么样?如果没有,为什么不呢?
(尝试区分它们的一种方法是查看CPU使用情况,但如果面向内容的版本也使用增量并且面向增量的版本也使用内容缓存,那么这将被挫败。事实证明,内容面向导向的版本,即git,也以不寻常的方式使用deltas-just。)