Semantic Merge 是一个能理解程序语言语法的merge工具,现在支持C#和VB,随后会支持C, C++, Objective-C, JavaScript...
它能和Git, Subversion, Perforce, ClearCase, Team Foundation Server, Mercurial的版本控制工具一起使用,你可以这里找到怎么集成到TFS上。
它不是一个免费的软件,但是现在可以免费申请beta的license。(到2013年8月过期)
下面是我用他的diff功能做的一个小例子。安装后你可以在安装目录找到更多的使用示例。
用beyond compare比较一下两个文件,只修改了enum的位置和重命名。
用semanticmerge返回的diff结果,1个移动,2个重命名。
它自带的diff工具可以很清楚的看出来那里修改了。