5

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

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

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

4

7 回答 7

13

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

除了 LaTeX 或仅保留 txt 文档,使用 Subversion 对文件设置锁定是您最好的选择。

于 2009-04-24T04:28:38.700 回答
7

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

于 2009-04-24T04:22:13.270 回答
6

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

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

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

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

于 2009-05-19T00:55:10.087 回答
4

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

于 2009-04-24T04:24:01.003 回答
2

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

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

于 2009-04-24T04:26:07.380 回答
1

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

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

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

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

于 2009-04-24T04:42:18.293 回答
0

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

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

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

所以有两种选择:

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