【问题标题】:Git and OpenXML documentsGit 和 OpenXML 文档
【发布时间】:2013-06-04 14:43:30
【问题描述】:

由于 OpenXML 基本上是 zip 存档中的 XML 文件,我想知道 Git 是否可以处理 OpenXML 文档以进行版本控制和合并操作以及差异比较。 谢谢

【问题讨论】:

    标签: git openxml


    【解决方案1】:

    您可以对任何压缩文件格式采取以下方法:在将文件存储到 repo 之前让 git 解压缩文件,然后在签出之前再次重新压缩文件。然后文本差异会起作用,因为 repo 中的大部分内容都是纯文本。

    人们肯定在使用这种方法:见Uncompress OpenOffice files for better storage in version control

    【讨论】:

      【解决方案2】:

      在 Git 中为非文本文件启用差异是通过 Git Attributes 实现的。

      Pro Git book 中的Chapter 7.2 Customizing Git - Git Attributes 描述了如何配置.gitattributes。它提供了一个具体示例 (odt-to-txt),说明如何对 OpenDocument 文件执行此操作。由于 OpenDocument 也是一种压缩的 xml 格式,因此该示例对于 OpenXML 的修改应该相当简单。

      【讨论】:

      • 您确定这会启用合并吗?我对它的阅读表明它是在您向 git 询问差异时应用的过滤器。也就是说,修订历史仍然由 binary 文件组成,基于文本的合并仍然是不可能的;过滤只允许您生成人类可读的差异,但不能应用它。 (即它只是一个有点草率意义上的“差异”)
      • @kampu 不,既然你提到了它,我不确定它是否能够合并,所以我从我的答案中删除了它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多