我应该如何在OpenOffice中保存文件,使其不是Subversion中的二进制文件?

时间:2009-04-24 04:17:42

标签: svn diff openoffice.org binaryfiles

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

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

或者我使用错误的方法来执行此操作? (这很可能)

7 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:7)

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

答案 2 :(得分:6)

只要供应商提供了良好的差异和合并工具,文件就不必是要进行差异化和合并的文本格式。只要VCS可以配置为使用这些外部差异/合并工具。但是,为专有文档格式提供此类差异和合并工具的情况很少见。

TortoiseSVN可以扩展Word文档,这非常方便。它显然可以合并,虽然我从来没有尝试过。我认为它可能能够区分和合并OpenOffice文档,但我从未尝试过。

TortoiseSVN可以“排序”差异Excel文档,但使用它并不是很好。没有合并。

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

答案 3 :(得分:4)

.odt 文件是AFAIK压缩的XML文件。然而,即使你将它们保存为解压缩的XML,我也非常怀疑你可以合并除了最小的变化之外的任何东西。

答案 4 :(得分:1)

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

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

答案 5 :(得分:1)

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

通过锁定,一次只能有一个人使用它。

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

您可以为OpenOffice编写一些允许协作工作的插件。

答案 6 :(得分:0)

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

您最好的选择是使用更简单的格式,例如Markdown,因为简单的格式可以减少更改,从而实现更可靠的合并。许多作家使用Markdown,这很容易学习。

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

所以有两种选择:

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