首页 > 工具技巧 > 让Team Foundation Server Client(TFS)能比较和合并Word文档

让Team Foundation Server Client(TFS)能比较和合并Word文档

工具技巧

update: 和TortoiseSVN不同,TFS经常莫名其妙的不让你Merge冲突的两个版本,只提供“保持本地版本”和“保持服务器版本”两个选项。因此尽管这样配置了,确实能够比较Word文档,但还是无法合并。不知道怎么搞的。

公司的项目管理使用的是TFS(Team Foundation Server)作为源码管理工具,本来TFS对于文档的管理是建议使用Sharepoint的,但是Sharepoint太复杂了,以致于普通的最基本的应用显得非常不顺手。因此我们的文档管理采用的是源码管理一样的模式。但是TFS并不支持对word文档进行比较和合并,因此多人协作的时候如果check out忘记加锁,经常会出现冲突问题。

实际上Word本身是支持对文档的比较和合并的。以前我用TortoiseSVN的时候,使用diff或者merge工具的时候都是调用Word程序的。因此我想,既然TortoiseSVN可以做到,TFS能不能做到呢?答案是可以的。TFS和TortoiseSVN一样,支持自定义diff和merge工具。在Visual studio的选项中可以配置。

Visual Studio Team Foundation Server Configure User Tools

搜了一下,网上对于命令行调用word对文档进行比较和合并说得比较麻烦。后来我想,既然TortoiseSVN已经做到了,为什么不借鉴一下。

打开TortoiseSVN配置窗口,发现果然TortoiseSVN中已经有很多现成的脚本。

TortoiseSVN diff merge 脚本

不过这些脚本使用的参数名和TFS的不大一样,TFS中用%1表示OriginalFile,也就是服务器上的版本,%2表示ModifiedFile,就是你的本地版本,%3表示BaseFile,也就是基准版本(Merge的时候需要服务器版本和本地版本的共同版本,称为基准版本);%4表示MergedFile,为合并之后的文档。

把这些脚本调用的参数和TFS使用的参数映射关系搞明白之后,我做了如下配置:

Extension:docx
Operation:compare
Command:C:\Windows\System32\wscript.exe
Arguments: "D:\Coding\TortoiseSVN\Diff-Scripts\diff-docx.js" %1 %2 //E:javascript

Extension:docx
Operation:merge
Command:C:\Windows\System32\wscript.exe
Arguments: "D:\Coding\TortoiseSVN\Diff-Scripts\merge-docx.js"  //E:javascript %4 %1 %2 %3

加入这两条配置之后,TFS以后就能够自动比较和合并Word2007文档了。其他文档,如word2003,Powerpoint也是用类似的方法来配置。

Diff-Scripts

——Kevin Yang

本博客遵循CC协议2.5,即署名-非商业性使用-相同方式共享
写作很辛苦,转载请注明作者以及原文链接~
如果你喜欢我的文章,你可以订阅我的博客:-D点击订阅我的文章

  1. justyle
    | #1

    呵呵,原来如此

  2. 大敏
    | #2

    学习了。看哪时有机会用得上

  1. 暂时没有trackbacks.