代码之家  ›  专栏  ›  技术社区  ›  Ortwin Gentz

我应该使用merge=union将.pbxproj文件与git合并吗?

  •  18
  • Ortwin Gentz  · 技术社区  · 14 年前

    我想知道.gittattributes中的merge=union选项对于.pbxproj文件是否有意义。

    手册页说明了此选项:

    对文本文件运行3向文件级合并,但从两个版本中提取行,而不是留下冲突标记。这会使结果文件中添加的行以随机顺序排列,用户应该验证结果。

    通常,对于向项目添加文件的90%情况,这应该是可以的。有人有这方面的经验吗?

    2 回复  |  直到 11 年前
        1
  •  17
  •   Community CDub    7 年前

    不是一个 直接的 经验,但是:

    这个 pbxproj 文件并不是真正的人类可食性文件。
    虽然它是纯ascii文本,但它是 JSON格式 . 实际上,您希望将其视为二进制文件。

    (因此) gitignore solution )

    事实上, Peter Hosey 在注释中添加:

    这是一个 property list 不是JSON。同样的想法,不同的语法。

    事实是,不允许合并.pbxproj文件的危害远大于它的帮助。
    这个 PBXPROJ 文件是 简杰森 (类似于XML)。根据经验,只有两个人同时添加了文件时,才会发生合并冲突。在99%的合并冲突案例中,解决方案是保留合并的双方。

    所以一个合并的联合 gitattributes merge directive )有道理,但要做一些测试,看看它是否做了与上一个问题中提到的脚本相同的事情。

        2
  •  9
  •   Corey Floyd    11 年前

    我最近和一个大团队一起工作 *.pbxproj merge=union ,但最终不得不将其移除。

    问题是大括号会在常规基础上变得不合适,这使得文件无法读取。的确,Tho大部分时间都在工作,但可能失败了四分之一。

    我们又开始使用 *.pbxproj -crlf -merge 眼下。这似乎是对我们可行的最佳解决办法。