Инструмент Diff, который может сравнивать подразделы файлов

Я ищу инструмент diff, который позволит мне сравнить только часть раздела файла с разделом другого файла или даже самого себя. Предпочтительно затмение основывается, но будет принимать все предложения.

Да, я знаю, что могу скопировать два раздела в разные файлы и сравнить их, но это очень утомительно, когда вы пытаетесь сделать большой объем рефакторинга.

В основном я пытаюсь удалить как можно больше дублированного кода из базы кодов, которая страдает от большого количества наследования ctrl-V ';-) Однако вставляемые части немного выросли со временем.

Ответы

Ответ 1

Я играл с Atomiq, который находит дубликаты внутри одного файла. Пока он выглядит достойным инструментом.

Ответ 2

Попробуйте использовать Diffuse. Просто вставьте два подраздела, которые вы хотите сравнить, в отдельные панели и нажмите CTRL-L, чтобы повторно выровнять их. Вы также можете загрузить файлы и вручную настроить выравнивание, чтобы соответствовать интересующим подразделам.

Ответ 3

Два двух инструмента, которые я использовал для выработки дублирующего кода: Simian и CopyPasteKiller. Оба они полезны, хотя IMO CopyPasteKiller немного легче начать. Похоже, что для Simian существует плагин Eclipse, хотя я сам его не использовал.

Ответ 4

CheckStyle прекрасно интегрируется с Eclipse и будет выполнять эту работу. Он уведомит вас и сообщит вам об ошибке/предупреждении, если ваш код дублируется, сколько раз... и т.д.

http://eclipse-cs.sourceforge.net/

Kdiff3 был бы другим выбором. Not Eclipse интегрирован, но очень хороший бесплатный кросс-платформенный инструмент для слияния, сравнения файлов и т.д.

Ответ 5

См. SD CloneDR - инструмент, который обнаруживает точные и близкие к пропуску клоны в соответствии с синтаксисом языка для большого количества языков (Java, С#, PHP, С++, C, COBOL, Ada,...). В настоящее время готовится API Eclipse, и, вероятно, он доступен 1 ​​января 2010 года.