Советы, чтобы показать сходство в файлах
В проекте я нашел несколько 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).
Он генерирует отчет, который показывает , насколько точно блоки кода похожи, и как они различаются. Вы можете посмотреть образцы отчетов по ссылке.