首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一个“完美”的diff算法?

有没有一个“完美”的diff算法?
EN

Stack Overflow用户
提问于 2012-03-19 03:49:27
回答 3查看 244关注 0票数 1

有没有一种不会出错的diff算法?一个确切知道哪些字母在所有情况下被删除,哪些字母被插入的人?

如果不存在,是不可能还是太难了?

EN

回答 3

Stack Overflow用户

发布于 2012-03-19 03:51:20

这是不可能的,因为在一般情况下,有多个编辑序列可以将您从原始版本带到最终版本。

票数 2
EN

Stack Overflow用户

发布于 2012-03-19 03:57:49

一种diff算法,查看原始文本和新文本,不能区分编辑的真实顺序。所以它不能知道你是把ABC从一个地方移到另一个地方,还是把它从一个地方删除然后插入另一个地方。在这种情况下,传统的diff只会告诉你,某个东西在一个地方被删除了,而另一个东西(它甚至不知道它是一样的)被插入到了其他地方。

人们可以构建一个工具来对一组合理的编辑进行有根据的猜测。我们的Smart Differencer利用代码结构和代码片段的相似性来猜测代码块被移动了,而不是插入/删除,即使面对更改的变量名也是如此。

票数 0
EN

Stack Overflow用户

发布于 2012-03-19 04:00:29

这是一个定义问题。

是:总是有可能找到两个文件之间的完美区别,其含义是:两者之间的不同之处。

不:例如,你可能想知道你删除了哪个{,这可能太复杂了,因为没有回忆起后来发生了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9761675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档