In einem Projekt habe ich einige CSS-Dateien gefunden, die "riechen", als wären darin kopierte Regeln eingefügt.
Ich frage mich, mit welchen Strategien Sie Copy-Paste-Dateien in Dateien erkennen.
Aus reiner Neugier möchte ich Ihre Tipps und Tricks zum Anzeigen von Dateiähnlichkeiten hören!
Probieren Sie Simian .
Es wird für die Copy-Paste-Erkennung im Quellcode (Java, C #, C, C ++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy) verwendet, aber Sie können dies im Klartext ausführen Dateien auch.
Es gibt ein Copy-Paste Detection (CPD) -Projekt auf Sourceforge; Ссылка
Aber selbst in großen Projekten finde ich meine eigenen Kenntnisse des Codes als zuverlässigen (wenn auch nicht idiotensicheren) Erkennungsmechanismus.
Siehe auch diese Frage für weitere Vorschläge.
>Unser Semantic Designs CloneDR ist ein Tool, das Code-Paste-Edit-Blöcke von Code für viele Sprachen erkennt: C , C ++, Java, C ++, COBOL, ECMAScript, PHP, VB6, VB.net, ...
Es verwendet sprachgenaue Parser, um abstrakte Syntaxbäume zu erstellen, die genauen Programmstrukturen entsprechen, die dann auf Ähnlichkeit verglichen werden. Dies bedeutet, dass es in keiner Weise durch Leerzeichen, Formmatting, Kommentare oder sogar unterschiedliche "Schreibweisen" von Literalen (z. B. 3.14159 ist gleich wie .00314150E3) verwechselt wird.
Erzeugt einen Bericht, der genau zeigt, wie die Code-Blöcke ähnlich sind und wie sie genau variieren. Sie können Beispielberichte über den Link sehen.
Tags und Links copy-paste similarity simian