我有一个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但它似乎没有此功能。
那里有一个工具(希望是免费的)吗?
答案 0 :(得分:1)
我认为有一些工具可以帮助你。我熟悉的只有linux meld。屏幕截图应该让您了解要查找的内容。
基于查看某些屏幕截图,Araxis Merge和ECMerge具有相似的功能。
答案 1 :(得分:1)
从根本上说,你想知道你是否已经移动了langauge结构。所以一个有序的“行差异”(例如,unix diff给你的东西,以及许多合并工具似乎实现的东西)并不是你想要的。
我们的SmartDifferencer不是合并工具,而是一种非面向行的差异工具,可以回答你的问题。
SmartDifferencer比较语法树(表达式,语句,块,方法......) 对于您的源代码,并告诉您在代码上的操作方面的差异(插入,删除,移动,复制,重命名复制,在块内重命名)。
SmartDifferncer可用于许多语言(包括C ++)以及各种语言的各种方言。