2009-08-07 54 views
7

我一直在做一些改变,包括移动方法,提取新方法,以及少量改变功能(并非全部在同一时间,但在同一修订版本中 - 也许这是一个糟糕的决定)。是否有可能在文件之间进行智能差异?

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

回答

1

Ediff,emacs附带的diff工具将帮助您检查这些区域。

当在一个文件中的文本的 大块已经 被编辑,然后转移到另一个文件中的 不同的地方,你可能会遇到的情况。在 这种情况下,文本 这两大块都不可能属于同一 不同的区域,所以Ediff的细化 功能将无法 告诉你里面有什么 这些块准确的区别。由于眼球大 段文字与人类 性质相悖,因此Ediff有一个专门的命令来帮助减少发展为 白内障的风险。

1

为理解语言的语法和抽象编辑命令如“移动从线A到线B的代码块”,“在重命名范围这个变量无处不在”的工具见SmartDifferencer。目前可用于Java和COBOL,以及Real Soon之后的其他语言。

编辑2009年9月4日:C#添加...

编辑5/2011:许多语言又说:C++,JavaScript的,更多...检查站点。

相关问题