Patch打补丁学习笔记

1.基本命令语法:
  patch [-R] {-p(n)} [–dry-run] < patch_file_name
  p:为path的缩写。
  n:指将patch文件中的path第n条’/’及其左边部分取消。
  -R:卸载patch包。
  –dry-run:尝试patch软件,并不真正修改软件。

  例如:

  patch−p1</home/sense/patch−2.6.19.1安装补丁patch−p1</home/sense/patch−2.6.19.1安装补丁 patch -p1 patch -p1 -R < /home/sense/patch-2.6.19.1 卸载补丁

  例如:
  0002-main.patch main.c
  diff –git a/src/core/main.c b/src/core/main.c

  如果这两个文件在同目录下,那么就要省略三层目录(目录路径中有三个”/”),因此打补丁命令为:
  $ patch -p3 < 0002-main.patch

2.假如发现某个项目有bug代码,而自己又没有svn的提交权限,那么此时最合适的解决方法就是用diff命令做一个补丁发给项目成员。项目成员通过patch命令可以立刻知道你的意图。

3.实验

  $ diff -Naur old new > foo.patch
  其中-Naur参数属于固定打法,不管是对一个文件,还是对一个目录,在使用这个参数基本就可以了。

  patch−p0<foo.patch(或者进入下层目录,patch−p0<foo.patch(或者进入下层目录, patch -p0 patch -p1 < ../foo.patch )

  如果再次使用会提示是否还原,输入y就还原。

  如果你想严格指定是应用补丁可以使用下面命令(就是增加N参数):

  # patch -Np0 < foo.patch

  如果你想严格指定是还原补丁可以使用下面命令(就是增加R参数):

  # patch -Rp0 < foo.patch

4.总结

  单个文件
  diff –uN from-file to-file >to-file.patch 制作补丁
  patch –p0 < to-file.patch 打补丁
  patch –RE –p0 < to-file.patch 还原

  多个文件
  diff –uNr from-docu to-docu >to-docu.patch
  patch –p1 < to-docu.patch
  patch –R –p1

二、使用git打补丁

1.检测补丁有无问题
gitapply–checkxxx.patch2.error:xxxxx:patchdoesnotapply出现这种一般会是补丁冲突,这种一般是强制打上补丁(使用–reject)后根据产生的∗.rej文件来手动解决冲突。3.warning:xxxx.chastype100644,expected100755出现这种警告一般是文件内没有冲突,但是文件的权限发生变动。一般没有影响。4.强制打补丁gitapply–checkxxx.patch2.error:xxxxx:patchdoesnotapply出现这种一般会是补丁冲突,这种一般是强制打上补丁(使用–reject)后根据产生的∗.rej文件来手动解决冲突。3.warning:xxxx.chastype100644,expected100755出现这种警告一般是文件内没有冲突,但是文件的权限发生变动。一般没有影响。4.强制打补丁 git apply –check xxx.patch 2. error: xxxxx: patch does not apply 出现这种一般会是补丁冲突,这种一般是强制打上补丁(使用–reject)后根据产生的*.rej文件来手动解决冲突。 3. warning: xxxx.c has type 100644, expected 100755 出现这种警告一般是文件内没有冲突,但是文件的权限发生变动。一般没有影响。 4.强制打补丁 git apply –reject xxx.patch
然后再手动修改冲突,find ./ -name *.rej找到这些冲突的补丁,手动打上
5.git am同样有–reject选项,添加这个选项可以将能打上的补丁先打上,冲突的文件生成*.rej文件。

打入 patch / diff:
git apply xxx.patch
git apply xxx.diff
检查 patch / diff:
git apply –check xxx.patch
git apply –check xxx.diff
若git和需要打patch的文件不在一个目录:(git在framework下,patch要打入frameworks/base/下)
git apply –check –directory=base/ xxx.patch
git apply –directory=base/ xxx.patch
** git am 后面会说到,以及生产patch和打

补充:

  在Yocto中编译过程中打补丁时,也可以使用这种方法,补丁中的文件路径名是可以改的,不影响补丁的成功打入。

参考:http://blog.csdn.net/maotianwang/article/details/11107083?reload

转:Patch打补丁学习笔记相关推荐

  1. linux rcs文件中的ip,linux学习笔记之diff和patch命令

    关键字:Linux 学习笔记 运维 系统 命令 一.命令的功能 diff命令的功能为逐行比较两个文本文件,列出其不同之处.可是做成diff记录也就是补丁. patch就是利用diff制作的补丁来打到文 ...

  2. oracle startup作用,【学习笔记】Oracle打补丁后startup migrate、startup upgrade区别分析...

    天萃荷净 分享一篇Oracle数据库在打完补丁后startup migrate.startup upgrade区别分析 1.为什么要使用Startup Migrate STARTUP MIGRATE ...

  3. hpux安装oracle数据库,【学习笔记】HP-UNIX系统安装BUNDLE和补丁包的方法步骤

    天萃荷净 Oracle研究中心学习笔记:分享一篇关于HP-UNIX系统安装系统安装BUNDLE和补丁包的方法步骤. HPUX补丁包分2种: 1.BUNDLE在一起的: 2.单个的小补丁: 如果补丁包B ...

  4. 天草脱壳视频学习笔记(逆向 OD)

    天草壳世界学习笔记: 1.OD的查找支持模糊查找 ?? 比如 要查找 E82091FBFFA1B8  可模糊查找:E8??91FBFF??B8 2.OD的插件idaficator 可以支持回滚 就是记 ...

  5. 天草脱壳视频学习笔记

    天草壳世界学习笔记: 1.OD的查找支持模糊查找 ?? 比如 要查找 E82091FBFFA1B8  可模糊查找:E8??91FBFF??B8 2.OD的插件idaficator 可以支持回滚 就是记 ...

  6. Windows x64内核学习笔记(一)—— 环境与配置

    Windows x64内核学习笔记(一)-- 环境与配置 前言 新特性 基础要求 实验环境 Guest Win10配置 问题解决 参考资料 前言 之前,跟着海哥学习了windows内核的一些机制,包括 ...

  7. 好程序员web前端分享CSS Bug、CSS Hack和Filter学习笔记

    为什么80%的码农都做不了架构师?>>>    CSS Bug.CSS Hack和Filter学习笔记 1)CSS Bug:CSS样式在各浏览器中解析不一致的情况,或者说CSS样式在 ...

  8. RISCV学习笔记7.8(开源虚拟机篇)--AlmaLinux虚拟机安装modelsim

    上一期的教程我们安装了wine,这一期来教大家安装仿真软件modelsim哈. 1.软件下载 请参考:RISCV学习笔记6.5(软件篇)–ubuntu18.04虚拟机安装modelsim se 10. ...

  9. 经典神经网络论文超详细解读(三)——GoogLeNet InceptionV1学习笔记(翻译+精读+代码复现)

    前言 在上一期中介绍了VGG,VGG在2014年ImageNet 中获得了定位任务第1名和分类任务第2名的好成绩,而今天要介绍的就是同年分类任务的第一名--GoogLeNet . 作为2014年Ima ...

  10. Git 学习笔记:6 GitHub

    Git 学习笔记:6 GitHub 账户的 创建和配置 SSH访问 头像 邮件地址 两步验证 对项目做贡献 派生(fork)项目 GitHub 流程 创建合并请求 利用合并请求 合并请求的进阶用法 将 ...

最新文章

  1. 2012级计科《程序设计基础Ⅱ》期末上机考试
  2. 如何获取mongodb中的最后N条记录?
  3. matlab fprintf_Matlab给Ansys助攻
  4. 卷积神经网络, Convolutional Neural Networks , CNN
  5. 需求管理是CMM可重复级中的6个关键过程域之一,其主要目标是__________。A.客观地验证需求管理活动...
  6. 【tensorflow】Sequential 模型方法
  7. shiro java配置,InI 配置 - 跟我学 Apache Shiro_教程_Java开发社区
  8. %1$s %1$d Android string
  9. java redis pipeline,巧用 Redis pipeline 命令,解决真实的生产问题
  10. 17.卷1(套接字联网API)--- ioctl 操作
  11. 修复:Linux系统机箱前置面板耳机插孔没声音
  12. Agent 监控配置说明
  13. linux普通用户密码到期修改为原密码方法
  14. tp5的时间查询,查询时间戳是否在某一天中
  15. 出国读计算机专业好吗,计算机美国读研 - 美国留学读计算机专业好不好
  16. 【秒杀】一、系统设计要点,从卖病鹅说起
  17. Java微服务实战项目推荐
  18. 动态规划java实现数塔问题_动态规划入门_数塔问题
  19. 必应每日一图php,自建必应每日一图API接口
  20. 第7章第21节:双图排版:两张图片左右并列排版 [PowerPoint精美幻灯片实战教程]

热门文章

  1. RK3228开发之gc2145芯片手册分析
  2. 如何将NCM转换成MP3 - NCM转MP3转换软件
  3. python3爬虫(2):使用Selenium爬取百度文库word文章
  4. 中国银行业发展前景预测与未来战略规划建议报告2022-2028年版
  5. mac安装yarn的方法
  6. PDF怎么快速统计文档字数?这两种方法很简单
  7. 噪音分贝测试软件在线,分贝测试(在线分贝测试仪)
  8. SSM大学生心理健康服务平台毕业设计-附源码071131
  9. js正则验证手机号码和座机号码及邮箱
  10. 同步检波 matlab,AgilentN9030A|安捷伦N9030A|KeysightN9030A|是德N9030A|频谱分析仪