我正在与合作伙伴合作开发Open Office文档,我们正在使用subversion进行协作。但是,我们将文档保存为.odt文件,而subversion将其作为二进制文件类型读取。因此,令我担心的是,当我们合并文件和差异弹出时,如果存在冲突,我们将无法充分执行合并;我们将无法理解原始.odt文件。
所以我的问题是“我如何在Open Office中保存文档,以便它保留您期望和想要的所有格式,但保存为二进制文件,因此可以轻松合并?”
或者我使用错误的方法来执行此操作? (这很可能)
答案 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。
所以有两种选择: