2009-08-07 2 views
7

Я вносил изменения, которые включали в себя методы перемещения, извлечение новых методов и изменение функциональных возможностей в небольшой сумме (не в одно и то же время, но в рамках одной и той же ревизии - возможно, это было плохое решение).Можно ли делать интеллектуальные различия между файлами?

Обычное отличие, похоже, создает отличия в том, что отчет о методе doFoo был удален в строке 42, и что почти идентичный метод, который также называется doFoo, был создан на линии 2012. Легко ли попросить отличную программу сравнить doFoo удалено в строке 42 с doFoo, созданным в 2012 году? (Предпочтительно программа diff, свободная и доступная на Ubuntu)

ответ

1

, инструмент diff, входящий в комплект поставки emacs, поможет вам изучить эти области.

Вы можете столкнуться с ситуацией, когда большой кусок текста в одном файле имеет был отредактирован, а затем переехал в другое место в другом файле. В таком случае, эти два фрагмента текста вряд ли принадлежат к одной и той же разностной области, поэтому функция уточнения из Ediff не сможет вам сказать, что именно отличается внутри эти куски. Поскольку глазное яблоко большое фрагменты текста противоречат человеку природа, у Ediff есть специальная команда , что помогает снизить риск развития катаракты .

1

SmartDifferencer См инструмент, который понимает синтаксис языка и абстрактные команды редактирования, такие как «переместить этот блок кода из линии А на линию B», «переименовать эту переменную везде в области видимости». В настоящее время доступны для Java и COBOL, другие языки после Real Soon.

EDIT 9/4/2009: C# добавлены ...

EDIT 5/2011: Много языков добавлен: C++, JavaScript, больше ... Проверить сайт.

Смежные вопросы