Советы, чтобы показать сходство в файлах

В проекте я нашел несколько CSS-файлов, которые "пахнут", как будто в них есть скопированные правила.

Интересно, каковы ваши стратегии обнаружения копирования-вставки в файлах.

Просто из любопытства я хотел бы услышать ваши советы и подсказки для демонстрации сходства файлов!

3 ответа

Решение

Попробуй Симиан.

Он используется для обнаружения копирования-вставки в исходном коде (Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy), но вы можете запустить его и в простых текстовых файлах.

На sourceforge существует проект обнаружения копирования-вставки (CPD); http://pmd.sourceforge.net/cpd.html

Но даже в больших проектах я нахожу свои знания о коде надежным (хотя и не надежным) механизмом обнаружения.

Также см. Этот вопрос для других предложений.

Наши семантические разработки CloneDR - это инструмент, который обнаруживает блоки кода копирования-вставки-редактирования для многих языков: C, C++, Java, C++, COBOL, ECMAScript, PHP, VB6, VB.net, ...

Он использует точные синтаксические анализаторы для построения абстрактных синтаксических деревьев, соответствующих точным программным структурам, которые затем сравниваются на предмет сходства. Это означает, что он никоим образом не путается с пробелами, форматированием, комментариями или даже другим "написанием" литералов (например, 3.14159 совпадает с.00314150E3).

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

Другие вопросы по тегам