赞
踩
生成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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。