我可以通过Subversion可靠地合并两个Microsoft Word文档吗?
我们在Word文档上正在进行并发编辑,我想确保Subversion可以处理合并的.doc文件。我们知道Subversion是否能很好地处理Word文档的合并?
解决方案
Word文档是二进制的,所以没有。编辑者是否知识渊博,可以教他们如何使用纯文本格式(如reStructuredText或者LaTeX)?
否:由于Word使用二进制文件格式,因此svn根本无法合并文件。
但是,Word本身具有合并功能。如果必须解决合并冲突,则可以尝试这样做。
结合使用TortoiseSVN合并实用程序和xdocdiff插件来比较和合并Office文档
我会将svn:needs-lock属性添加到Subversion中存储的Word文档中,以便人们在编辑文件之前必须先锁定文件。这将对防止合并冲突大有帮助。
这就是我们在工作中所做的,并且效果很好。 (对于使用Word文档,我们别无选择,因此只能选择此解决方案,而不是更改文件类型。)
我们可以在默认安装中使用TortoiseSVN来查看差异和执行Word文档的合并,它只是打开Word并使用Word自己的查看/更改模式来执行此操作。
编辑:默认情况下,它还具有PowerPoint,Excel,OpenOffice和StarOffice格式的差异功能。 (检查TortoiseSVN \ Diff-Scripts目录)。
我们可能还会考虑使用非二进制格式,例如Html
我们可以使用Word将docx文档保存为" Flat OPC" XML格式(另存为.. XML文档)。
这样,我们将获得纯文本文件。
不过,我们需要注意的是,关系ID不会被破坏。
例如:
- 用户A将图像(或者超链接,注释或者脚注等)添加到文档,并进行svn提交。
- 用户B(不进行svn更新)在Word中添加其中之一,另存为xml,然后进行svn更新。
用户B目前不太可能在Word中打开文档,因此最好不要提交。如果我们可以对此进行控制,或者准备手动解决问题,则可以。
否则,我们可以考虑使用像我的Plutext协作软件之类的软件,该软件可以在Alfresco中切碎文档并对其组成部分进行版本化。
我目前正在研究使用SharpSVN连接到资源库的Word插件。在当前状态下,创建和选择新文档有点复杂,但这不应该是一个大问题。
因此,当我们(最后)在存储库中有一个文档时,提交和从任何修订版本进行更新都非常简单。我们可以将这些.docx文件与Word的内置比较或者合并功能进行比较和合并。其实很简单。希望在接下来的几周内完成它。