制作和合入patch补丁
制作补丁
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补丁相关推荐
- 制作和合入quilt补丁
步骤 生成空patch(quilt new filename.patch)->文件关联patch(quilt add {files})->修改文件->生成最终patch文件(quil ...
- 生成和合入patch的两种方式
在平时有代码移植或合入芯片厂商或板卡商的代码时,我们就可能要用到打补丁技术. 1. 两种补丁方案 Git提供了两种补丁方案,分别patch和diff. diff git diff 生成的是UNIX标准 ...
- Rimworld Mod制作教程3 使用Xpath制作patch(补丁)
文章目录 废话 核心内容 1 使用Xpath制作patch(补丁) 1.1 基本格式 1.2 手术类型 1.3 ~~偷窥~~ 参考他人代码 废话 rimworld在A17版本后提供了一个新的编写mod ...
- 如何制作LINUX的patch文件及如何打patch
如何制作LINUX的patch文件及如何打patch 对某个版本的Linux内核做了修改以后,如果希望发布出去给别人用,那么就需要制作针对此版本的patch文件. patch文件也叫补丁,就是一个文本 ...
- iOS动态部署之RSA加密传输Patch补丁
概要:这一篇博客主要说明下iOS客户端动态部署方案中,patch(补丁)是如何比较安全的加载到客户端中. 在整个过程中,需要使用RSA来加密(你可以选择其它的非对称加密算法),MD5来做校验(同样,你 ...
- 开源社区合入patch的步骤
以Ranger项目为例,说明开源社区合入patch的详细步骤. 1.reviews页面下载patch 进入到review页面: https://reviews.apache.org/r/67919/ ...
- nginx patch补丁方式添加 nginx_upstream_check_module 模块,并测试健康检查
原创博客地址:陈帅同学-nginx patch补丁方式添加 nginx_upstream_check_module 模块,并测试健康检查 我的测试环境 contos:6.7nginx:1.63 che ...
- buildroot patch 补丁文件使用方法
在使用 buildroot 编译内核源码时,时常会有修改驱动或第三方包的需求,直接在 output/build/ 下修改源码,make clean 修改内容就会丢失,使用打补丁方式,把补丁包放到pac ...
- 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. ...
- 饥荒联机版Mod开发——制作可入锅,烹饪,凉干的食物(七)
饥荒联机版Mod开发--制作可入锅,烹饪,凉干的食物(七) 可入锅 可烹饪 可凉干 传送门 可入锅 参考:cooking.lua 先来看一下官方代码 --names:{"prefab1&qu ...
最新文章
- DevOps笔记-04:DevOps工具和文化缺一不可
- @ConfigurationProperties 注解
- php中一级标题和二级标题,什么是一级标题,一二三标题格式举例
- case / switch语句的Python等价物是什么? [重复]
- 招聘 | 刘知远老师博士生涂存超博士创办的「幂律智能」招NLP算法工程师啦
- 学习笔记(03):2020软考数据库系统工程师-基础知识培训视频-计算机系统--安全性可靠性与性能评测(一)...
- windows更改redis配置文件
- 最新织梦DEDE仿爱手赚网手赚导航网站源码手赚App下载导航站+手机版
- Hadoop基础教程-第1章 环境安装配置(1.6 SSH免密登录)
- java 整型数组定义_JAVA数组的定义及用法
- Android drawable.setBounds()+设置RadioButton的图片大小和位置
- STM32U5,意法半导体新打造的超低功耗MCU旗舰版
- QMCPACK计算机模拟,材料模拟高性能计算解决方案.pdf
- ElasticSearch6.5.4三中文以及拼音的搜索
- 2的n次方计算,支持大整数,nodejs代码
- 教你一招完美解决 pptx 库安装失败的问题
- Keil设置编译生成的文件放置的目录
- 惠普中国CEO孙振耀退休感言---阿冬专栏
- 每日学术速递5.25
- 如何导入jar包到本地仓库以及将项目打包install本地仓库
热门文章
- 居然有比冰点更好的文库下载神器,能下载文库源文档?
- SMing:2022年中青杯A题思路
- GBase 8c V3.0.0数据类型——备份控制函数
- 斐讯n1卡在android,斐讯N1,看本地高清电影请务必刷coreelec
- COMSOL6.0软件安装说明+视频教程
- 基于app_inventor的手机aap与单片机蓝牙互联教程
- java创建一个问卷调查界面_十分钟搭建自己的问卷调查系统 | 码云周刊
- 《缠中说禅108课》99:走势结构的两重表里关系 3
- 1001:Hello,World! 信息学奥赛一本通c++版在线评测系统
- html5简单在线绘图,html5实现一个简单的在线画板