用 Word 做为 TortoiseSVN 的差异比较程序以及版本合并程序
 
2009-04-24 来源:dualface.com
 

TortoiseSVN 自带的差异比较版本合并程序只能处理纯文本文件,而对于常用的 Word 文档则无能为力。经过我一番试验,终于搞定了这个问题。

第一步:创建一个包含宏的Word文档

启动 Word,然后选择“工具->宏->Visual Base编辑器”菜单启动VB编辑器。在编辑器左侧的“Normal”项目上点击鼠标右键,选择“插入->模块”菜单。然后输入下列代码:

Sub SvnCompare()
If Documents.Count 2 Then Exit Sub
ActiveDocument.Compare Documents(2).Path & _
"\" & Documents(2).Name, "Comparison"
End Sub

Sub SvnMerge()
If Documents.Count 2 Then Exit Sub
ActiveDocument.Merge Documents(2).Path & _
"\" & Documents(2).Name
End Sub

保存后关闭 Word。

第二步:设置 TortoiseSVN

接下来选择“TortoiseSVN->Settings”菜单,并切换到“差异比较/合并”选项卡。点击“差异比较程序”组中的“高级设置”按钮,再点击“添加”按钮。输入文件扩展名为“doc”,再点击“…”按钮并选中 C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE,并在头尾各输入一个英文引号。后面再加上 “%base” “%mine” /w /mSvnCompare。

最后重复这个步骤并分别设置扩展名为 .dot、.rtf。

现在我们双击“日志”条目,就可以自动启动 Word 来比较差异了。

除了进行比较外,还可以将两个版本合并到一起。要进行 Word 文档的合并,还是进入 TortoiseSVN 的“差异比较/合并”选项卡,并点击“合并程序”组中的“高级设置”按钮。按照前面的步骤添加对 .doc、.dot和 .rtf 文件的处理。但 winword.exe 后面的参数要改成 “%merged” “%theirs” /w /mSvnMerge。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织