Compare 比较多个文件的通用代码

Compare 比较多个文件的通用代码,compare,diff,codebase,Compare,Diff,Codebase,我有两个项目,每个项目都有大量的代码库。我想运行一个工具来检查每个项目中的所有文件,并向我显示项目中哪些文件具有相似的代码。我甚至不确定是否存在类似的情况,但我记得在学校时,老师们有一个工具,他们在多个学生的所有代码上运行,以确定他们的代码有多相似(以抓住作弊者)。你在想类似的事情吗?它可以比较整个目录树中的文件。您需要的是一个。这些工具可以查找跨任何文件集复制的代码。对于您的任务,您将获取两个项目的文件,并跨该集执行克隆检测 [根据实际经验编辑2019年,完全按照OP的意愿行事] 如果在一个项

我有两个项目,每个项目都有大量的代码库。我想运行一个工具来检查每个项目中的所有文件,并向我显示项目中哪些文件具有相似的代码。我甚至不确定是否存在类似的情况,但我记得在学校时,老师们有一个工具,他们在多个学生的所有代码上运行,以确定他们的代码有多相似(以抓住作弊者)。

你在想类似的事情吗?它可以比较整个目录树中的文件。

您需要的是一个。这些工具可以查找跨任何文件集复制的代码。对于您的任务,您将获取两个项目的文件,并跨该集执行克隆检测

[根据实际经验编辑2019年,完全按照OP的意愿行事]

如果在一个项目的文件中找到了与另一个项目的文件中找到的克隆相对应的克隆,那么您已经找到了它们的共同点

对两个项目中的所有文件执行直接克隆检测的一个缺陷是,您将发现从一个项目到同一个项目中的许多克隆。根据你的问题,这些都不有趣,例如假阳性


我的公司提供了一种商业克隆探测器,名为。它是(IMHO)一个非常好的检测器,可以找到其他检测器无法找到的克隆(例如,它不会被注释更改、代码布局、数字半径、变量重命名甚至插入或删除代码片段所愚弄)。但它还有一个非常好的特性:它可以选择只跨两个项目代码库检测克隆。如果将这两个项目视为一个项目,您将不会得到误报。

许多编辑器都有并列的比较工具。这些是WinMerge的嵌入式版本。记事本++和SublimiteText2出现在我的脑海中。

项目没有相同的文件名,甚至没有相同的文件内容。谢谢,帮助我找到了最接近我需要的东西。@marhyno:谢谢你的提示。固定的。