我试图找到一些语义差异/合并实用程序的好例子.比较源代码文件的传统范例通过比较行和字符来工作..但是有没有任何实用程序(对于任何语言)在比较文件时实际考虑代码结构?
例如,现有的差异程序将报告"在第125行的字符2处找到的差异.文件x包含void,其中文件y包含bool".一个专门的工具应该能够报告"返回类型的方法doSomething()从void更改为bool".
我认为这种类型的语义信息实际上是用户在比较代码时所寻求的,并且应该是下一代编程工具的目标.可用工具中是否有这方面的例子?
我希望能够在两个程序集之间进行代码级差异; Reflector的Diff插件是迄今为止我发现的最接近的东西,但要比较整个程序集是一个手动过程,需要我深入到每个命名空间/类/方法.
到目前为止,我发现的其他工具似乎仅限于API级别(命名空间,类,方法)的差异 - 这些工具不会因为我正在寻找的东西而削减它.
有谁知道这样的工具?我的要求(从最高到最低)是:
(我个人喜欢WinMerge的文本差异,所以具有类似界面的应用程序会很棒)
我有两个VS C#项目(特别是对于一个Outlook插件)我认为非常相似,除了100行代码.我有点担心项目可能有其他不同的配置选项,所以我想比较这两个.
查看两个代码库之间差异的最佳方法是什么?
我已经尝试将这两个项目放在并行目录中并使用diff,但由于项目的命名方式不同,因此某些文件不匹配.我只是想知道是否有更简单的方法来做到这一点?