【发布时间】:2009-10-08 09:22:24
【问题描述】:
在一个项目中,我发现一些 css 文件“闻起来”,好像里面有复制粘贴的规则。
我想知道您检测文件中复制粘贴内容的策略是什么。
出于好奇,我想听听您显示文件相似性的提示和技巧!
【问题讨论】:
标签: copy-paste similarity simian
在一个项目中,我发现一些 css 文件“闻起来”,好像里面有复制粘贴的规则。
我想知道您检测文件中复制粘贴内容的策略是什么。
出于好奇,我想听听您显示文件相似性的提示和技巧!
【问题讨论】:
标签: copy-paste similarity simian
试试Simian。
它用于源代码(Java、C#、C、C++、COBOL、Ruby、JSP、ASP、HTML、XML、Visual Basic、Groovy)中的复制粘贴检测,但您可以在纯文本上运行它文件。
【讨论】:
-reportDuplicateText 选项,指示它在报告中包含重复的文本。
sourceforge 上有一个复制粘贴检测 (CPD) 项目; http://pmd.sourceforge.net/cpd.html
但即使在大型项目中,我也发现我自己对代码的了解是一种可靠(尽管并非万无一失)的检测机制。
有关其他建议,另请参阅this question。
【讨论】:
我们的Semantic Designs CloneDR 是一个检测复制粘贴编辑代码块的工具,适用于多种语言:C、C++、Java、C++、COBOL、ECMAScript、PHP、VB6、VB.net,...
它确实使用语言精确的解析器来构建抽象语法树,对应于确切的程序结构,然后比较它们的相似性。这意味着它不会被空格、格式化、cmets 甚至不同的文字“拼写”混淆(例如,3.14159 与 .00314150E3 相同)。
它会生成一份报告,准确地显示代码块的相似之处,以及它们之间的差异。您可以在链接中查看示例报告。
【讨论】: