patch 修补文件(给文件打补丁)

功能:修补文件。使用补丁文件,对源文件进行更改。更改方式根据参数来设定。
倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件。

语法:patch   [OPTION]   [ORIGFILE]  [PATCHFILE]
输入选项
-p NUM --strip=NUM 去除相对路径层次的数目
-F LINES --fuzz LINES 设置监别列数
-l --ignore-whitespace 忽略修补数据与输入数据的跳格,空格字符
-c --context 把修补数据解译成关联性的差异
-e --ed 把修补数据解译成ed指令可用的叙述文件
-n --normal 把修补数据解译成一般性的差异
-u --unified 把修补数据解译成一致化的差异
-N --forward 忽略修补的数据较原始文件的版本更旧,或该版本的修补数据已使用过
-R --reverse 假设修补数据是由新旧文件交换位置而产生
-i PATCHFILE --input=PATCHFILE 读取指定的修补文件
 
输出选项
-o FILE --output=FILE 设置输出文件的名称,修补过的文件会以该名称存放
-r FILE --reject-file=FILE Output rejects to FILE
-D NAME --ifdef=NAME 用指定的符号把改变的地方标示出来
-m --merge Merge using conflict markers instead of creating reject files
-E --remove-empty-files 若修补过后输出的文件其内容是一片空白,则移除该文件
-Z --set-utc 把修补过的文件更改,存取时间设为UTC
-T --set-time 此参数的效果和指定"-Z"参数类似,但以本地时间为主
  --quoting-style=WORD 使用WORD引述类型显示项目名称,可设定值有literal,shell,shell-always,c,escape
 
备份和版本控制选项
-b --backup 备份每一个原始文件
  --backup-if-mismatch 在修补数据不完全吻合,且没有刻意指定要备份文件时,才备份文件
  --no-backup-if-mismatch 在修补数据不完全吻合,且没有刻意指定要备份文件时,不要备份文件
-V STYLE --version-control=STYLE 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用"-z"参数变更,
当使用"-V"参数指定不同备份方式时,也会产生不同字尾的备份字符串
-B PREFIX --prefix=PREFIX 设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称
-Y PREFIX --basename-prefix=PREFIX 设置文件备份时,附加在文件基本名称开头的字首字符串
-z SUFFIX --suffix=SUFFIX 此参数的效果和指定"-B"参数类似,差别在于修补作业使用的路径与文件名若为src/linux/fs/super.c,
加上"backup/"字符串后,文件super.c会备份于/src/linux/fs/backup目录里
-g NUM --get=NUM 设置以RSC或SCCS控制修补作业
 
其他选项
-t --batch 自动略过错误,不询问任何问题
-f --force 此参数的效果和指定"-t"参数类似,但会假设修补数据的版本为新版本
-s --quiet或--silent 不显示指令执行过程,除非发生错误
  --verbose 显示详细的过程信息
  --dry-run 实际上不改变任何文件;演示讲会发生什么
  --posix 符合POSIX标准
-d DIR --directory=DIR 先改变工作目录到指定的目录
  --reject-format=FORMAT Create 'context' or 'unified' rejects
  --binary 以二进制方式读写数据
  --read-only=BEHAVIOR 如何处理只读输入文件:“忽视”,他们是只读的,“警告”(默认),或“失败”
  • patch 命令(默认)使用从标准输入读入的源文件 < PATCHFILE ,但是使用 -i  PATCHFILE 设置。
  • 源文件包含由 diff 命令产生的差别列表(或者 diff 列表)。差异列表是比较两个文件和构建关于如何纠正差别的指示信息的结果。
  • 差异列表有三种格式:正常、上下文或者是 ed 编辑器风格。patch 命令确定差异列表格式,除非被 -c、-e 或 -n 标志否决。
  • 默认,ORIGFILE 被PATCHFILE 替换。若ORIGFILE(原始文件)不存在时,PATCHFILE(补丁文件)根据差别列表,创建 ORIGFILE 文件。
  • 指定 -b 标志时,ORIGFILE(原始文件)会备份在自身的文件中,只是在文件名后附加了后缀 .orig。使用 -o 标志也可以指定输出的目的地。

patch常用选项:
-r 是一个递归选项,设置了这个选项,diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。
-N 选项确保补丁文件将正确地处理已经创建或删除文件的情况。
-u 选项以统一格式创建补丁文件,这种格式比缺省格式更紧凑些。
-p0 选项从当前目录查找目的文件(夹)(直接使用补丁文件里面指定的路径)
-p1 选项忽略掉第一层目录,从当前目录查找(去掉补丁文件指定路径最左的第1个'/'及前面所有内容)。
-E  选项说明如果发现了空文件,那么就删除它
-R  选项说明在补丁文件中的“新”文件和“旧”文件现在要调换过来了(实际上就是给新版本打补丁,让它变成老版本)

svn生成补丁文件和打补丁文件

生成补丁文件:
svn diff > patchFile  整个工程的变动生成补丁
或 svn diff file > patchFile  某个文件单独变动的补丁 svn回滚:
svn revert FILE   单个文件回滚
svn revert DIR --depth=infinity   整个目录进行递归回滚 打patch:
patch -p0 < test.patch   -p0 选项要从当前目录查找目的文件 patch -p1 < test.patch  -p1 选项要从当前目录查找目的文件,不包含patch中的最上级目录
例如两个版本以a,b开头,而a,b并不是真正有效地代码路径,则这时候需要使用"-p1"参数。
a/src/...
b/src/...

patch 修补文件(给文件打补丁)相关推荐

  1. patch 修补文件命令

    patch 修补文件命令 patch 修补文件命令 操作练习: 针对单个文件的修改补丁 针对文件目录下所有文件的修改补丁 补充:svn生成补丁文件和打补丁文件 总结 patch 修补文件命令 功能:修 ...

  2. 修复:安装 CUDA9.0 Patch 1 时载入文件后闪退(cuda_9.0.176.1_windows.exe)

    参考文章:修复:安装 CUDA9.0 Patch 1 时载入文件后闪退 按照他的做法把install2文件夹删掉了,不知待会cuda能正常运行不? 20200330 更新 今天搜到这篇博文,想仔细看看 ...

  3. CorelDraw 9、12、X3文件打开慢加速补丁

    CorelDraw 9.12.X3文件打开慢加速补丁 是不是经常因为打开CorelDraw文件太慢(超慢的那种^_^)而烦恼呢?其实是因为CD在读取文件color style信息所造成的! 使用方法如 ...

  4. MSGraphMailbag - 复制/移动 SharePoint Online 中的文件和文件夹

    本篇我们介绍如何跨 SharePoint Online 网站实现有条件的文件和文件夹的复制和移动,这其实来自一个真实的客户需求. 业务场景 SharePoint Online 自带的拆箱即用的复制 ( ...

  5. 各种类型文件对应文件的 Content-Type

    各种类型文件对应文件的 Content-Type /*** 两种初始化Map常量* 1.new HashMap* 2.static 静态代码块*/static Map<String , Stri ...

  6. MAC OS 如何修改“文件”或“文件夹”的“创建时间”和“修改时间”

    首先,在MAC OS上修改文件或者文件夹的「命名」,是不会修改文件或文件夹的"修改时间"的,对于单个文件来说,例如一个文本文件,只有它包括的内容发生了改变,该文件的"修改 ...

  7. C++ 笔记(25)— 理解 C++ 中的头文件和源文件的作用

    1. C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件: .cpp 文件,被称作 C++ 源文件,里面放的都是 C++ 的源代码 .h 文件,被称作 C++ 头文件,里面放的也是 C++ ...

  8. linux scp移动文件夹,linux scp远程拷贝文件及文件夹

    [http://www.jb51.net/LINUXjishu/73131.html] 1.拷贝本机/home/administrator/test整个目录至远程主机192.168.1.100的/ro ...

  9. 判断文件或文件夹(目录)是否存在 C/C++ win/linux通用

    一.windows下使用_access()或linux下使用access()函数 windows下使用_access()函数 所在头文件:<io.h> 函数原型:int _access(c ...

最新文章

  1. 编程语言python特点-Python和其他编程语言相比有哪些优势呢?
  2. java获取服务器信息返回前端,java程序获取linux服务器进程信息
  3. ginapi服务器性能,如何使用 Gin 和 Gorm 搭建一个简单的 API 服务 (一)
  4. 数据结构与算法-索引1909
  5. 微型计算机系统中 麦克风属于,模块1-2 计算机基础知识测验题目(50小题)
  6. 国内机场代码(IATA)
  7. dbeaver一款全能的数据库连接工具dbeaver
  8. 第十一届蓝桥杯省赛B组真题训练
  9. 2020-12-23 PMP 群内练习题 - 光环
  10. 注入器/injector
  11. 如何使用promise.all
  12. HTML-定位网页元素
  13. “大菜汪”1 个就霸屏,手机QQ上线新表情
  14. 数据仓库项目实例(马蜂窝数据仓库)
  15. 多核cpu应用场景_1分钟搞懂 CPU该买多核还是高主频?
  16. web常见的 HTTP 5xx 状态汇总
  17. 保护计算机组件免受esd,USB3.0接口的ESD防护设计
  18. 基于echarts+js+fexible.js实现的数据可视化适配案例(附源代码)
  19. IDA动态调试so 指南
  20. python调用百度地图API爬取西安市POI数据

热门文章

  1. Incorporating External Knowledge through Pre-training for Natural Language to Code Generation论文笔记
  2. abb机器人指令手册_ABB机器人的程序结构与模块属性
  3. Linux下安装maven(mvn命令)
  4. 淘宝电商用户行为数据分析及可视化—基于MySQL/Power BI(含代码)
  5. vue、jQuery的Ajax写法
  6. ArcGIS教程:制作风或水流速流向图
  7. php用Imagick扩展合并多张图片为PDF
  8. nginx(三十二)rewrite模块
  9. 计算机网络实训报告:宿舍校园网网络设计
  10. 广东省工业和信息化厅关于组织开展2022年创新型中小企业评价、专精特新中小企业认定和复核工作的通知