【问题标题】:How should I save a file in OpenOffice so that it is not a binary file in Subversion?我应该如何在 OpenOffice 中保存文件,使其不是 Subversion 中的二进制文件?
【发布时间】:2010-10-21 12:49:18
【问题描述】:

我正在与合作伙伴一起处理 Open Office 文档,我们正在使用 subversion 进行协作。但是,我们将文档保存为 .odt 文件,subversion 将其读取为二进制文件类型。因此,我担心当我们去合并文件并弹出差异时,如果存在冲突,我们将无法充分执行合并;我们将无法理解原始 .odt 文件。

所以我的问题是“我如何在 Open Office 中保存文档,以便它保留您期望和想要的所有格式,但保存为二进制文件,因此可以轻松合并?”

还是我使用了错误的方法来做到这一点? (这很有可能)

【问题讨论】:

  • 由于 Opendocument 使用像现在通常用于办公套件的压缩 xml 文件,因此您将无法使用 subversion 进行此合并。使用 OpenOffice 的功能来实现这一点。

标签: svn diff openoffice.org binaryfiles


【解决方案1】:

尽管您可能讨厌它,但 LaTeX 为您提供了一种创建文档的方法,但在 subversion 中将它们作为文本保存,很容易合并。

除了 LaTeX 或仅保留 txt 文档之外,最好使用 Subversion 设置文件锁定。

【讨论】:

  • 其实 svn 是我再次开始使用 LaTeX 的原因......您可以添加一些小脚本,将“svn info”直接添加到 LaTeX 文档中,这样您就知道您使用的是什么版本。
  • svn info 的东西听起来很方便。
  • 不幸的是,跳到 LaTeX 对许多企业来说有点过于激进了。
【解决方案2】:

对于复杂的二进制文件格式(.odt 是其中之一),我发现在 Subversion 中使用锁定而不尝试合并更改是一个好主意。在文件上设置 Subversion 属性svn:needs-lock,然后您将需要在编辑文件之前请求锁定文件(有关详细信息,请参阅 Subversion 手册中的Locking)。这在我的情况下效果很好,但它是否适合您取决于您​​的协作水平。

【讨论】:

  • 一个很好的答案,所以 +1,但我已经做到了,我真正想要的是一种在原始级别上具有人类可读文件的方法,同时仍然播放主机.odt 文件中提供的格式。 (如果没有办法做我想做的事,我会用答案标记某人)
【解决方案3】:

文件不必是要进行差异和合并的文本格式——只要供应商提供了一个好的差异和合并工具。只要可以将 VCS 配置为使用这些外部差异/合并工具。然而,很少有为专有文档格式提供这样的差异和合并工具。

TortoiseSVN 可以区分 Word 文档,这非常方便。它显然也可以合并,尽管我从未尝试过。我认为它可能能够区分和合并 OpenOffice 文档,但我从未尝试过。

TortoiseSVN 可以“有点”区分 Excel 文档,但使用起来不是很好。没有合并。

在我的公司,我们在 Word 和 Excel 文档上设置了 svn:needs-lock 以避免合并问题。即便如此,我发现能够比较以前的版本并查看发生了什么变化非常方便。

【讨论】:

  • 我不知道 TortoiseSVN 可以做到这一点。 +1
【解决方案4】:

.odt 文件是 AFAIK 压缩的 XML 文件。但是,即使您将它们保存为解压缩的 XML,我也严重怀疑您是否可以合并任何东西,但最小的更改。

【讨论】:

  • 我会调查的,但我敢打赌你是对的。我不太可能发现这些变化;至少我仍然知道我现在在做什么。感谢(AFAIK 信息 +1)
【解决方案5】:

.odt 格式实际上是一种 zip 文件格式(在大多数情况下),它将您的文档和可能的其他二进制资源打包在一起。它是一个 zip 文件这一事实意味着它本质上是二进制文件。可能有一种方法可以使用 OpenOffice 将文档保存为纯文本 XML,我不确定。

如果您确实需要合并更改的能力,那么使用纯文本格式可能会更好。

【讨论】:

    【解决方案6】:

    合并一个复杂的页面将是一个问题,因为颠覆将无法做好。

    通过锁定,一次只有一个人可以处理它。

    如果您不喜欢 LaTex 或 .txt 建议,您可以每次将其保存为 html 页面。

    也许你可以为 OpenOffice 编写一些插件来允许协作工作。

    【讨论】:

      【解决方案7】:

      复杂的机器维护文件总是难以在版本控制系统中合并,即使它们以文本形式存储。如果它是未压缩的 OpenOffice.org XML 会怎样?您所做的一个简单更改将修改整个 XML 文件中的许多行,从而导致可能的冲突。

      最好的办法是使用更简单的格式,例如Markdown,因为简单的格式会导致更少的更改,从而导致更可靠的合并。许多作家使用 Markdown,而且很容易学习。

      有大量支持这种标记语言的编辑器,但您可能需要稍微修改一下您的工作流程。例如,有一个ODT to txt 转换脚本,它将 ODF 转换为带有降价格式的 txt。另外,pandoc 可以在多种格式之间进行转换,例如 Markdown 和 ODF。

      所以有两种选择:

      1. 更改为直接支持 Markdown 的编辑器(简单的文本编辑器就可以,但您可以使用更高级的带有 Markdown 模式的文本编辑器,例如 VIM Markdown mode
      2. 在 Markdown 和 OpenOffice.org 格式之间插入一个转换步骤。 (确保先测试可行性)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多