1、产生patch:
(1)纯净的代码A_old,执行make distclean
(2)将A_old拷贝一份到B_new
(3)将修改的文件放入B_new中
(4)执行diff -uprN A_old B_new > mypatch,这样是对多个文件打patch
对单个文件打patch:
diff -up orig_file new_file > mypatch
u 显示有差异行的前后几行(上下文), 默认是前后各3行, 这样, patch中带有更多的信息.
-p 显示代码所在的c函数的信息.
-r 递归地对比一个目录和它的所有子目录(即整个目录树).
-N 如果某个文件缺少了, 就当作是空文件来对比. 如果不使用本选项, 当diff发现旧代码或者新代码缺少文件时, 只简单的提示缺少文件. 如果使用本选项, 会将新添加的文件全新打印出来作为新增的部分.
2、添加patch的办法:
(1)新的代码C
(2)cd C
(3)patch -p1 < mypatch
p0表示从mypatch指示的开始路径添加patch,p1表示忽略mypatch中的第一级目录,p2表示忽略mypatch中的第二级目录。
3、卸载patch
patch -p(n) -R < 【补丁包路径,例如mypatch】