".gitattributes"文件中的"*.jpg binary -delta"是什么意思?

5

本主题讨论建议放置

*.jpg binary -delta

在git仓库中的.gitattribute文件中,我不确定它的作用。我找不到git的“-delta”标志的任何示例。
其目的是显然加快较大文件的提交或推送时间。
1个回答

7

这可能与以下相关:

打包对象

delta

对于属性 delta 设置为 false 的路径的 blob,将不会尝试进行 Delta 压缩。

我在 "Git 二进制差异算法(Delta 存储)是否标准化?" 中详细介绍了 Delta 存储。

这并不是二进制文件默认设置的原因,因为:

我们最初的目标受众是将 git 用作源代码控制系统的人。

Jeff King 补充道

我在我的一个仓库中使用delta jpgs。如果exif元数据发生更改但图像数据没有更改,则这很有用。我认为您可以对具有压缩和未压缩部分的其他格式执行相同操作(我也在视频容器中执行此操作)。我不认为尝试对gzip'd或bzip'd内容进行增量处理有任何意义。
我也不使用“binary”,而是使用自定义差异驱动程序(binary意味着“-diff”)。
至于默认值应该是什么,直到现在,默认值始终是默认情况下未定义任何gitattributes。这很好,因为它很简单易懂;git不关心文件名,除非您告诉它。
显然,缺点是在某些不寻常的工作负载中可能不会表现出最佳性能,需要额外的配置。 .gitattributes man page提到:
将文件标记为二进制文件的最简单方法是在.gitattributes文件中取消设置diff属性:
*.ps -diff

这将导致Git生成二进制文件差异(或二进制补丁,如果启用了二进制补丁),而不是常规差异。
因此,“设置“二进制”属性也取消了上述的“文本”和“差异”属性”,但Jeff说他在这种情况下仅使用了-diff,这已足以将文件标记为二进制。

那么对于*.jpg二进制文件,-delta意味着将delta设置为false。它并不像说“delta=false”或类似的语句那样明确。编辑:我有点傻了,在文档中该标志确切地设置了它要执行你所说的操作。 - IamPolaris
@IamPolaris 是的,-delta 是在 .gitattributes 文件中用来将其设置为“false”的语法。 - VonC
binary-diff 的一种快捷方式吗? - IamPolaris
1
从文档中: 设置“binary”属性也会像上面那样取消“text”和“diff”属性。 - IamPolaris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接