打patch p0 p1区别

如何使用patch
对于一个patch文件,有两种常用使用方法:
1.代码:cat new-patch | patch -p0

2.代码:patch -p0 < new-patch

patch命令里面的层数(-p0?-p1?)
参数-p来指定从第几层开始比较。比如有一个patch文件的补丁头是这样的:

代码:

--- old/modules/pcitableMon Sep 27 11:03:56 1999
+++ new/modules/pcitableTue Dec 19 20:05:41 2000

如果使用参数-p0,就表示从当前目录,找一个叫作new的目录,在它下面找一个叫modules的目录,再在它下面找一个叫pcitableMon的目录。
如果使用参数-p1,就表示忽略第一层,从当前目录找一个叫modules的目录,在它下面找一个叫modules的目录。这样会忽略掉补丁头提到的new目录。
依此类推。

patch文件的结构
补丁头
补丁头是分别由---/+++开头的两行,用来表示要打补丁的文件。
一个补丁文件中的多个补丁
一个补丁文件中可能包含以---/+++开头的很多节,每一节用来打一个补丁。所以在一个补丁文件中可以包含好多个补丁。

块是补丁中要修改的地方。它通常由一部分不用修改的东西开始和结束。他们只是用来表示要修改的位置。他们通常以@@开始,结束于另一个块的开始或者一个新的补丁头。
块的缩进
块会缩进一列,而这一列是用来表示这一行是要增加还是要删除的。
块的第一列
+号表示这一行是要加上的。
-号表示这一行是要删除的。
没有加号也没有减号表示这里只是引用的而不需要修改。

分析
这个例子是由命令

代码:

diff -u old/modules/pcitable new/modules/pcitable

创建的。不过最好是用命令diff -Naur来代替diff -u。
它修改了两个文件,new/modules/pcitable和new/usr/share/kudzu/pcitable。
第一个补丁头包含两个块,分别增加了两行和一行。

时间: 2024-10-12 00:06:57

打patch p0 p1区别的相关文章

RESTFul中的那些事(1)---在RESTFul中,HTTP Put和Patch操作的区别?

笔者在用调用Google Calendar和Google Tasks的RESTFul API的时候,遇到了一个特殊的操作,PATCH.那么PATCH操作和PUT操作的区别是什么呢? 根据PATCH for HTTP Method 一文中的描述(http://tools.ietf.org/html/rfc5789)我们知道,PATCH 操作主要用来更新部分资源,而且其不是幂等(所谓的幂等就是每次更新后,结果不变)的.Put操作主要用来更新全部的资源,而且其实幂等的. 那么PATCH操作的优势是什么

RESTFUL服务中POST/PUT/PATCH方法的区别

POST/PUT方法,都可以用来创建或更新一个资源. 区别是细微但清楚的: POST方法用来创建一个子资源,如 /api/users,会在users下面创建一个user,如users/1 POST方法不是幂等的,多次执行,将导致多条相同的用户被创建(users/1,users/2 ...而这些用户除了自增长id外有着相同的数据,除非你的系统实现了额外的数据唯一性检查). PUT方法用来创建一个URI已知的资源,或对已知资源进行完全替换,比如users/1. PUT方法一般会用来更新一个已知资源,

用Diff和Patch工具维护源码

在Unix系统下,维护源码版本可以使用很多方法,其中最常用的当然是大名鼎鼎的CVS,但实际上,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维护工具,Unix标配中的diff和patch工具就完全可以完成代码的简单备份和升级工作. diff以"行"为单位比较两个文本文件(也可以是目录比较),并将不同之处以某种格式输出到标准输出上:patch可以读入这种输出,并按照一定指令使源文件(目录)按照目标文件(目录)更新.Linux内核源码就是按照这种方式保持更新的,我们在www.ke

diff patch 命令制作补丁

diff 命令 diff可以比较两个文件,并可同时记录下二者的区别.制作补丁时的一般用法和常见选项为: diff [选项] 源文件(夹) 目的文件(夹) -r:递归,设置后diff会将两个不同版本源代码目录中的所有对应文件都进行一次比较,包括子目录文件: -N:确保补丁文件将正确地处理已经创建或删除文件的情况: -u:一体化diff输出(参见例1) -E, -b, -w, -B, –strip-trailing-cr 忽略各种空白,可参见文档,按需选用. 例1,有如下两个差异文件: # vers

diff和patch使用指南

大纲 1.概述 2.diff的用法 3.patch的用法 4.实战演练 1.概述 diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算.     diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件.     patch能将diff文件运用于 原来的两个集合之一,从而得到另一个集合.举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么着个过程相当于 A -B = C

【转】patch命令

原文网址:http://bbs.chinaunix.net/thread-1945698-1-1.html patch给文件1应用补丁文件变成另外一个文件2(需要先用"diff 文件1 文件2"生成补丁文件).语法patch [选项] [原始文件 [补丁文件]] 描述: patch 命令读取如何更改文件的源文件指示信息,然后应用这些更改.源文件包含由 diff 命令产生的差别列表(或者 diff 列表).差异列表是比较两个文件和构建关于如何纠正差别的指示信息的结果.缺省情况下,patc

Linux diff patch

/***************************************************************************** * Linux diff patch * 声明: * 经常需要给代码打补丁,但是发现自己不会打补丁,经常看着补丁改代码,效率 * 那是一个低啊,不会就学学呗,反正patch有-R回退,不怕出错. * * 2015-12-28 深圳 南山平山村 曾剑锋 *********************************************

&lt;转载&gt; diff 和 patch 命令

本文转载自:http://blog.chinaunix.net/uid-23390992-id-3312321.html diff与patch命令 diff与patch命令真可谓是天作之合,命令中的黄金搭档.老师讲了之后其实自己不是很懂,因为上课的时候没有好好听,上课走神了.怎么办呢,肯定不能放着不管了,而这两个命令确实很重要,所以只能厚着脸皮课后死啃资料自己学习咯,学了之后才有开头第一句的感慨. diff和patch是一对工具,数学上说,diff是对两个集合的差运算,patch是对两个集合的和

linux patch

作为程序员,了解diff&patch命 令是非常必要的.比如说我们发现某个项目有bug代码,而自己又没有svn的提交权限,那么此时最合适的解决方法就是用diff命令做一个补丁发给项目成 员.项目成员通过patch命令可以立刻知道你的意图.有人会说直接传一个新文件不是更简单?不要忘了,一个patch文件尺寸更小传输更快,而且可以明 显的看到都做了哪些修改. 保证当前目录是demo名录: # mkdir demo # cd demo 先模拟一个项目目录old: # mkdir -p old/a/b