2009-08-07 90 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的,更多...檢查站點。

相關問題