diff和patch

 

diff [options] from-file to-file

常用的参数是diff -Nur

N是包括新文件,u是采用易读的格式,r是对目录递归

 

patch [options] [originalfile] [patchfile]

常用方法是patch -p1 < patchfile

p1是忽略一级目录结构,一般是因为目录名变了,patchfile是diff得到的。

 

patch一多,麻烦就来了。前段时间的项目,移植内核,修改驱动,,加yaffs2,三四个人各打各的patch,patch越来越乱。今天我想从内核源码整理出一套移植后的版本,头都大了。因为乱,其中一直隐藏几个小问题。spi-gpio竟有编译错误,yaffs2只有一个源码包,修改有记录,弄得我晕头转向,耗了不少时间。

感觉代码量越大,越复杂,patch方法就越乱。

一是,共通的文件,多个模块修改,例如内核中每个设备都要在同一个board相关的文件里声明,定义对应的结构体,先后加入几个驱动之后,patch先后关系就复杂了,需要额外的写脚本,维护的工作。

二是,yaffs2这样的模块,是后加入到内核的,diff时,需要先把yaffs2放进最原始的内核,再与修改后的代码比较得到patch,这样增加了复杂的中间步骤。如果diff时,直接比较原始内核和加入yaffs2并修改后的代码,获得的patch太大,没法看做了何种修改,修改并不多,使用patch就是为了容易看出修改哪些。

最后,各中间步骤交织在一起越来越复杂,出一点问题就乱成一团。网上常见的patch好像都是小修改。

 

修改较少时,使用patch,比较方便。修改达到一定规模,就应该来一个里程碑,整理一套直接就能用的代码,之前的复杂的patch就全都省了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值