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

Svn 我应该如何在OpenOffice中保存文件,使其在Subversion中不是二进制文件?,svn,diff,openoffice.org,binaryfiles,Svn,Diff,Openoffice.org,Binaryfiles,我正在和一个合作伙伴一起编写一个开放式Office文档,我们正在使用subversion进行协作。但是,我们将文档保存为.odt文件,subversion将其读取为二进制文件类型。因此,我担心当我们合并文件时,如果出现冲突,我们将无法充分执行合并;我们将无法理解raw.odt文件 因此,我的问题是“如何在Open Office中保存文档,使其保留您期望和需要的所有格式,但保存为二进制文件,从而可以轻松合并?” 还是我用了错误的方法?(这很可能)对于复杂的二进制文件格式(其中.odt就是其中之一)

我正在和一个合作伙伴一起编写一个开放式Office文档,我们正在使用subversion进行协作。但是,我们将文档保存为.odt文件,subversion将其读取为二进制文件类型。因此,我担心当我们合并文件时,如果出现冲突,我们将无法充分执行合并;我们将无法理解raw.odt文件

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


还是我用了错误的方法?(这很可能)

对于复杂的二进制文件格式(其中.odt就是其中之一),我发现在Subversion中使用锁定是一个好主意,而不是尝试合并更改。在文件上设置Subversion属性
svn:needs lock
,然后您需要在编辑文件之前请求锁定(有关详细信息,请参阅Subversion手册中的)。这在我的情况下效果很好,但这取决于您的协作级别。odt文件是AFAIK压缩XML文件。但是,即使您将它们保存为解压缩的XML,我也严重怀疑您是否可以合并任何内容,而不是最小的更改。

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


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

尽管您可能不喜欢它,LaTeX为您提供了一种创建文档的方法,但可以将它们作为文本在subversion中维护,这很容易合并


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

合并复杂的页面将是一个问题,因为Subversion无法做好这项工作

通过锁定,一次只能有一个人对其进行操作

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


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

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

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

OrtoiseSVN可以“排序”不同的Excel文档,但使用起来不是很好。没有合并


在我的公司,我们在Word和Excel文档上设置了svn:needs lock,以避免合并问题。即使这样,我发现能够区分以前的版本并查看更改的内容非常方便。

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

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

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

因此有两种选择:

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

  • 这是一个很好的答案,所以是+1,但我已经做到了,我真正想要的是一种方法,使一个文件在原始级别上是可读的,同时仍然承载.odt文件中提供的格式。(如果没有办法做我想做的事,我会用答案标记某人)我会调查一下,但我打赌你是对的。我不太可能发现这些变化;至少我知道我现在在做什么。感谢(AFAIK信息+1)实际上svn是我再次开始使用乳胶的原因。。。你可以添加一些小脚本,将“svn信息”添加到LaTeX文档中,这样你就知道你使用的是什么版本。svn信息听起来非常方便。对于许多企业来说,跳转到LaTeX有点太激进了。不幸的是,我不知道OrtoiseSVN可以做到这一点+1由于Opendocument使用压缩的xml文件,就像今天的office套件一样,您将无法使用subversion进行此合并。使用OpenOffice的功能来实现这一点。