我一直在做一些改变,包括移动方法,提取新方法,以及少量改变功能(并非全部在同一时间,但在同一修订版本中 - 也许这是一个糟糕的决定)。是否有可能在文件之间进行智能差异?
传统差异似乎会生成差异,报告doFoo在第42行被删除,并且在2012行创建了一个几乎相同的方法,也称为doFoo。是否容易要求差异程序比较doFoo第42行删除了2012年创建的doFoo? (最好在Ubuntu上免费提供的diff程序)
我一直在做一些改变,包括移动方法,提取新方法,以及少量改变功能(并非全部在同一时间,但在同一修订版本中 - 也许这是一个糟糕的决定)。是否有可能在文件之间进行智能差异?
传统差异似乎会生成差异,报告doFoo在第42行被删除,并且在2012行创建了一个几乎相同的方法,也称为doFoo。是否容易要求差异程序比较doFoo第42行删除了2012年创建的doFoo? (最好在Ubuntu上免费提供的diff程序)
Ediff,emacs附带的diff工具将帮助您检查这些区域。
当在一个文件中的文本的 大块已经 被编辑,然后转移到另一个文件中的 不同的地方,你可能会遇到的情况。在 这种情况下,文本 这两大块都不可能属于同一 不同的区域,所以Ediff的细化 功能将无法 告诉你里面有什么 这些块准确的区别。由于眼球大 段文字与人类 性质相悖,因此Ediff有一个专门的命令来帮助减少发展为 白内障的风险。
为理解语言的语法和抽象编辑命令如“移动从线A到线B的代码块”,“在重命名范围这个变量无处不在”的工具见SmartDifferencer。目前可用于Java和COBOL,以及Real Soon之后的其他语言。
编辑2009年9月4日:C#添加...
编辑5/2011:许多语言又说:C++,JavaScript的,更多...检查站点。
http://www.research.ibm.com/visual/projects/history_flow/gallery.htm
从未使用过它自己,但图像看起来很酷:P
此链接似乎无效。 – 2012-08-15 05:50:43
“您必须有权访问IBM内部网络才能看到此页面” – Splatmistro 2018-01-19 10:55:35