Linux patch的生成与使用

生成patch的方法:

使用diff命令生成patch
diff -uprN org chg > patch2
命令解释:
上面的命令表示,将chg文件夹基于org文件夹操作修改的内容生成一个patch2
简单点的就是:org文件夹是你的原始文件夹,chg文件夹是你在org文件夹的文件夹上面做了修改。那么现在你想把这些修改提取出来。就可以通过上面的命令把修改的内容放patch2里面。
参数解释:
-uprN 多个文件的patch合并在一起
org 原始的代码
chg 修改后的代码
patch2 生成的patch文件

使用patch的方法:

将上面的patch2进行使用
patch -p1 < patch2
命令说明:
-p1 去掉patch2里面的第一级目录
patch2 我们需要使用的补丁文件

关于-p1这个选项,多说两句
一般patch里面的内容如下:
--- a/drivers/mxc/ipu3/ipu_common.c
+++ b/drivers/mxc/ipu3/ipu_common.c

上面的内容表示patch是针对文件夹a和文件夹b生成的。
-p1就表示去掉b这一层文件夹,那么也就是说,你在当前目录下执行ls的时候,必须要看到drivers这个文件夹
-p2就表示去掉b/drivers这一层文件夹,你在当前目录下执行ls的时候,必须要看到mxc这个文件夹

在使用补丁的时候,最好-p1.因为你-p2时,patch文件就只能应用到drivers这个文件夹里面了。举例如下:
如果你patch文件同时包含如下信息:
--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi

--- a/drivers/mxc/ipu3/ipu_common.c
+++ b/drivers/mxc/ipu3/ipu_common.c

你使用-p1,那么你patch就可以应用到b目录下的所有文件
如果你使用-p2,如果你在drivers目录下,那么你补丁就只能应用到mxc/ipu3/ipu_common.c文件
如果你在arch目录下,那么你补丁就只能应用到arm/boot/dts/imx6qdl-sabresd.dtsi文件

如果我们打了patch,后面想把patch给撤销掉,可以使用如下命令:

patch -p1 -R < patch2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

monkey_llll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值