用于重新排序代码的最佳合并工具?

时间:2010-12-29 17:31:05

标签: comparison

我有一个C ++文件,我必须重新排序代码,我想使用比较工具来验证我已经重新排序代码而不是搞砸任何东西。例如:

旧:

A1
A2
A3
B1
B2
B3
C1
C2
C3
C4
D1
D2

新:

D1
D2
A1
A2
A3
C1
C2
C3
C4
B1
B2
B3

理想情况下,比较工具会自动识别我已重新排序块A,B,C,D,但每个块都是完整的。如果它不能自动完成,那很好,但我希望有能力帮助它,所以一旦我识别出一个块重新排序,它就会验证它只是一个重新排序而不是一个变化。

我们使用Beyond Compare但它似乎没有此功能。

那里有一个工具(希望是免费的)吗?

2 个答案:

答案 0 :(得分:1)

我认为有一些工具可以帮助你。我熟悉的只有linux meld。屏幕截图应该让您了解要查找的内容。

基于查看某些屏幕截图,Araxis MergeECMerge具有相似的功能。

答案 1 :(得分:1)

从根本上说,你想知道你是否已经移动了langauge结构。所以一个有序的“行差异”(例如,unix diff给你的东西,以及许多合并工具似乎实现的东西)并不是你想要的。

我们的SmartDifferencer不是合并工具,而是一种非面向行的差异工具,可以回答你的问题。

SmartDifferencer比较语法树(表达式,语句,块,方法......) 对于您的源代码,并告诉您在代码上的操作方面的差异(插入,删除,移动,复制,重命名复制,在块内重命名)。

SmartDifferncer可用于许多语言(包括C ++)以及各种语言的各种方言。