是否可以在文件之间进行智能区分?

时间:2009-08-07 08:22:24

标签: diff

我一直在进行更改,包括移动方法,提取新方法,以及少量更改功能(不是同时进行,但在同一修订版内 - 可能这是一个错误的决定)。

传统的差异似乎会生成差异,报告在第42行删除了方法doFoo,并且在第2012行创建了一个几乎相同的方法,也称为doFoo。是否很容易要求差异化程序比较删除的doFoo在第42行与2012年创建的doFoo? (最好是在Ubuntu上免费提供的差异程序)

3 个答案:

答案 0 :(得分:1)

Ediff,emacs附带的差异工具,可以帮助您检查这些区域。

  

你可能会遇到一种情况   一个文件中的大块文本有   已编辑,然后移动到   另一个文件中的不同位置。在   这样的情况下,这两个文本块   不太可能属于同一个   差异区域,所以细化   Ediff的特色将无法实现   告诉你里面究竟有什么不同   这些块。由于眼球大   文字是与人类相悖的   大自然,埃迪夫有一个特殊的命令   有助于降低发展的风险   白内障。

答案 1 :(得分:1)

有关了解语言语法和抽象编辑命令的工具,请参阅SmartDifferencer,例如“将此代码块从A行移至B行”,“在范围内的任何位置重命名此变量”。目前可用于Java和COBOL,其他语言在Real Soon之后。

编辑9/4/2009:C#已添加......

EDIT 5/2011:添加了许多语言:C ++,JavaScript,更多...检查网站。

答案 2 :(得分:-2)

http://www.research.ibm.com/visual/projects/history_flow/gallery.htm

我自己从未使用它,但图像看起来很酷:P