制作补丁
    diff -ruN A B > diff.patch
    参数:
        -r 递归子目录

-u 统一输出格式
        -x ".git" 忽略文件,忽略多个就多加-x ""
        -N 在比较目录时,若文件A仅出现在某个目录中,预设会显示:Only in目录(不会产生补丁具体信息):文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。

diff.patch
    修改1.c和2.c文件,增加3.c,删除4.c

diff -ruN A/1.c B/1.c
--- A/1.c   2018-09-07 15:10:55.993675944 +0800
+++ B/1.c   2018-09-07 14:48:09.345618321 +0800
@@ -1 +1,2 @@1111
+2222
diff -ruN A/2.c B/2.c
--- A/2.c   2018-09-07 15:10:55.993675944 +0800
+++ B/2.c   2018-09-07 14:48:19.429618746 +0800
@@ -1 +1,2 @@2222
+3333
diff -ruN A/3.c B/3.c
--- A/3.c   1970-01-01 08:00:00.000000000 +0800
+++ B/3.c   2018-09-07 15:00:42.641650082 +0800
@@ -0,0 +1 @@
+3333
diff -ruN A/4.c B/4.c
--- A/4.c   2018-09-07 15:10:55.993675944 +0800
+++ B/4.c   1970-01-01 08:00:00.000000000 +0800
@@ -1 +0,0 @@
-4444

打补丁

1、补丁与补丁里面描述的顶层目录A在同级:patch -p0 < diff.patch

2、补丁在补丁里面描述的顶层目录A下一级:patch -p1 < diff.patch
    (-pn 忽略多少级补丁文件的目录,比如上面把补丁文件拷贝到A目录下,--- A/1.c,用 -p1参数把目录A这一级目录忽略掉。

diff.patch是在与A同级目录下生成,把补丁文件拷贝到A目录下所以需要忽略1级目录)
    -RE 单个文件去除补丁,恢复旧版本
    -R  目录文件去除补丁,恢复旧版本,如:patch -p0 -R < diff.patch

冲突文件
    打完补丁后,需要检查一下有没有拒绝执行的文件,即检查.rej文件的存在。使用命令:
    $find  .  -name  *.rej
    如果发现,会将其输出到标准输出终端,默认屏幕。当然,你也可以采用重定向,输出到指定文件,比如reject。
    $fine  .  -name  *.rej  >reject
    然后可以查看reject的内容了

异常情况

1、冲突文件,需要查看具体rej文件信息,一般是已经删除或者插入代码。

查看冲突文件:security/keys/gc.c.rej

查看原本文件:已经删除了4行,补丁文件中再去删除就报冲突了

2、提示合入补丁成功,但是代码行号有偏移,需要注意。

3、冲突

对比源文件,这4行已经存在,所以报插入失败。

其他情况

    如果目录下只有B和diff.patch文件,执行patch -p0 < diff.patch,会提示如下:

(Stripping trailing CRs from patch.)
    patching file B
    Reversed (or previously applied) patch detected!  Assume -R? [n]

提示是否把B文件还原到A状态,输入y回车,此时就会把B还原到A状态,且提前把B原始文件保存一个B.orig备份文件。

制作和合入patch补丁相关推荐

  1. 制作和合入quilt补丁

    步骤 生成空patch(quilt new filename.patch)->文件关联patch(quilt add {files})->修改文件->生成最终patch文件(quil ...

  2. 生成和合入patch的两种方式

    在平时有代码移植或合入芯片厂商或板卡商的代码时,我们就可能要用到打补丁技术. 1. 两种补丁方案 Git提供了两种补丁方案,分别patch和diff. diff git diff 生成的是UNIX标准 ...

  3. Rimworld Mod制作教程3 使用Xpath制作patch(补丁)

    文章目录 废话 核心内容 1 使用Xpath制作patch(补丁) 1.1 基本格式 1.2 手术类型 1.3 ~~偷窥~~ 参考他人代码 废话 rimworld在A17版本后提供了一个新的编写mod ...

  4. 如何制作LINUX的patch文件及如何打patch

    如何制作LINUX的patch文件及如何打patch 对某个版本的Linux内核做了修改以后,如果希望发布出去给别人用,那么就需要制作针对此版本的patch文件. patch文件也叫补丁,就是一个文本 ...

  5. iOS动态部署之RSA加密传输Patch补丁

    概要:这一篇博客主要说明下iOS客户端动态部署方案中,patch(补丁)是如何比较安全的加载到客户端中. 在整个过程中,需要使用RSA来加密(你可以选择其它的非对称加密算法),MD5来做校验(同样,你 ...

  6. 开源社区合入patch的步骤

    以Ranger项目为例,说明开源社区合入patch的详细步骤. 1.reviews页面下载patch 进入到review页面: https://reviews.apache.org/r/67919/ ...

  7. nginx patch补丁方式添加 nginx_upstream_check_module 模块,并测试健康检查

    原创博客地址:陈帅同学-nginx patch补丁方式添加 nginx_upstream_check_module 模块,并测试健康检查 我的测试环境 contos:6.7nginx:1.63 che ...

  8. buildroot patch 补丁文件使用方法

    在使用 buildroot 编译内核源码时,时常会有修改驱动或第三方包的需求,直接在 output/build/ 下修改源码,make clean 修改内容就会丢失,使用打补丁方式,把补丁包放到pac ...

  9. Linux 内核实时补丁 PREEMPT_RT补丁 与 Linux4.1.15 + patch-4.1.15-rt18.patch 补丁,实测实时性差

    Linux4.1.15 + patch-4.1.15-rt18.patch 补丁,实测实时性差 开发环境 发行环境 该环境用于发行 Linux: 4.1.15 preempt_rt: patch-4. ...

  10. 饥荒联机版Mod开发——制作可入锅,烹饪,凉干的食物(七)

    饥荒联机版Mod开发--制作可入锅,烹饪,凉干的食物(七) 可入锅 可烹饪 可凉干 传送门 可入锅 参考:cooking.lua 先来看一下官方代码 --names:{"prefab1&qu ...

最新文章

  1. DevOps笔记-04:DevOps工具和文化缺一不可
  2. @ConfigurationProperties 注解
  3. php中一级标题和二级标题,什么是一级标题,一二三标题格式举例
  4. case / switch语句的Python等价物是什么? [重复]
  5. 招聘 | 刘知远老师博士生涂存超博士创办的「幂律智能」招NLP算法工程师啦
  6. 学习笔记(03):2020软考数据库系统工程师-基础知识培训视频-计算机系统--安全性可靠性与性能评测(一)...
  7. windows更改redis配置文件
  8. 最新织梦DEDE仿爱手赚网手赚导航网站源码手赚App下载导航站+手机版
  9. Hadoop基础教程-第1章 环境安装配置(1.6 SSH免密登录)
  10. java 整型数组定义_JAVA数组的定义及用法
  11. Android drawable.setBounds()+设置RadioButton的图片大小和位置
  12. STM32U5,意法半导体新打造的超低功耗MCU旗舰版
  13. QMCPACK计算机模拟,材料模拟高性能计算解决方案.pdf
  14. ElasticSearch6.5.4三中文以及拼音的搜索
  15. 2的n次方计算,支持大整数,nodejs代码
  16. 教你一招完美解决 pptx 库安装失败的问题
  17. Keil设置编译生成的文件放置的目录
  18. 惠普中国CEO孙振耀退休感言---阿冬专栏
  19. 每日学术速递5.25
  20. 如何导入jar包到本地仓库以及将项目打包install本地仓库

热门文章

  1. 居然有比冰点更好的文库下载神器,能下载文库源文档?
  2. SMing:2022年中青杯A题思路
  3. GBase 8c V3.0.0数据类型——备份控制函数
  4. 斐讯n1卡在android,斐讯N1,看本地高清电影请务必刷coreelec
  5. COMSOL6.0软件安装说明+视频教程
  6. 基于app_inventor的手机aap与单片机蓝牙互联教程
  7. java创建一个问卷调查界面_十分钟搭建自己的问卷调查系统 | 码云周刊
  8. 《缠中说禅108课》99:走势结构的两重表里关系 3
  9. 1001:Hello,World! 信息学奥赛一本通c++版在线评测系统
  10. html5简单在线绘图,html5实现一个简单的在线画板