语义diff


原文: SemanticDiff        设计            Bliki 索引

多数版本管理系统的实现仰仗着能比较出文件不同版本的变化,通常称作diff,源自Unix比较版本变化的命令。针对文本和二进制文件都有优秀的diff (以及merge)算法了,但这些diff工具的弊病是它们都非常愚钝,只会傻乎乎地对比两个版本,简单地告诉你怎么从一个版本变成另一个。

如果diff有了语义,它就不单单知道改变的效果,还能理解做这个修改的目的了,

举个例子,想一下我用工具对一个class做了一个提炼函数(Extract Method)重构,两个版本之间只有这个修改。现在的diff工具只能看到代码文本变了,但它们不知道我刚才做的是一个重构,因此查看diff结果只能告诉我哪儿修改了,无法以某种方式凸显这是个提炼函数重构。如果真能知道我做了什么,merge功能也会更好用。

(或许已经有一条广为接受的术语来说这件事了,果真如此请告诉我。)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值