我想知道.gitattributes中的merge = union选项是否适用于.pbxproj文件。
此选项的联机帮助页面说明:
为文本文件运行3向文件级合并,但从两个版本中获取行,而不是留下冲突标记。这往往会以随机顺序在结果文件中保留添加的行,用户应该验证结果。
通常,对于将90%的文件添加到项目中的情况,这应该没问题。有人有这方面的经验吗?
答案 0 :(得分:17)
不是直接体验,但是:
.pbxproj
个文件。
pbxproj
文件真的不是人类合法的 虽然它是纯ASCII文本,但它是JSON 的形式。基本上你想把它当作二进制文件。
实际上,Peter Hosey在评论中添加了:
这是 property list ,而不是JSON。相同的想法,不同的语法。
事实是,禁止合并.pbxproj文件比使用它更有害。
.pbxproj
文件是,只是JSON(类似于XML)。根据经验,您可能获得的唯一合并冲突就是两个人同时添加了文件。 99%的合并冲突案例中的解决方案是保持合并的双方。
所以合并'union'(带有gitattributes
merge directive)是有道理的,但要做一些测试,看看它是否与上一个问题中提到的脚本完全相同。
答案 1 :(得分:10)
我最近一直在与一个大团队合作并尝试*.pbxproj merge=union
,但最终不得不将其删除。
问题是大括号会定期变得不合适,这使得文件不可读。确实,大部分时间都可以工作 - 但可能会失败4次中的1次。
我们现在回到使用*.pbxproj -crlf -merge
。这似乎是对我们来说可行的最佳解决方案。