为什么在版本控制系统中应将.pbxproj文件视为二进制文件?

5

在一些地方提到,.pbxproj文件应该以二进制形式提交/导入到cvs或git中。它看起来像文本格式的脚本文件。为什么要建议将其视为二进制文件?

这个建议的原因是因为.pbxproj文件实际上包含了许多二进制数据,例如图像和音频文件等。如果你将其作为文本文件进行提交/导入,则可能会导致文件损坏或无法正常工作。因此,将其视为二进制文件有助于确保文件内容的完整性和正确性。

1个回答

3

这里所述,pbxproj不是真正可合并的,它是一个由JSON管理的复杂属性列表。

通常的设置在.gitattributes文件中:

*.pbxproj -crlf -diff -merge

这里所述

这可以防止Git尝试修复换行符,在差异中显示它,并将其从合并中排除。

另一种方法是:

*.pbxproj binary merge=union

文档所述,这并不起作用。

问题在于大括号经常会不恰当地移动位置,导致文件无法读取。虽然这种方法在大多数情况下是可行的,但仍有四分之一的概率失败。


在 merge=union 时:http://haacked.com/archive/2014/04/16/csproj-merge-conflicts/ 和 https://dev59.com/r5bfa4cB1Zd3GeqPtGj7#36833404 - VonC
感谢VonC的回答和链接。如果没有合并=联合功能,仅将项目文件视为二进制文件会有什么问题? - nav1729
@nav1729,只要git不尝试合并它,那也应该可以工作。 - VonC
这是否意味着 Git 合并标记为二进制文件的文件? - nav1729
1
@nav1729是的,它对于那些文件意味着二进制。或者类似二进制(无差异,无合并)。 - VonC
显示剩余2条评论

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