diff与patch
来源:互联网 发布:新秀丽 怎么样 知乎 编辑:程序博客网 时间:2024/04/29 15:57
1.diff是对两个集合的差运算,diff比较两个文件之间或两个文件集合(目录)文件的差异,并记录下来,生成一个diff文件,这个文件就是我们说的patch文件:
diff oldfile,newfile > out.patch
2.那么通过oldfile,patch得到newfile就是打补丁的过程:
patch oldfile out.patch
3.如果想通过newfile,patch得到oldfile:
patch -R newfile out.patch
4.diff -rc oldfile newfile
-r:当oldfile与newfile为目录时递归调用
-c:out.patch会生成一些额外的信息
5.patch文件格式
(1)补丁头:分别由---或+++开头的两行。
---标识oldfile相对文件路径,+++标识newfile相对文件路径
(2)块:以@@ - num1,num2 + num3,num4 @@开始,以下一个块的开始或者一个新的补丁头的上一行为结束。
- 标识oldfile,num1标识补丁块在oldfile中的起始位置,num2标识补丁块在oldfile中的最大偏移
+标识newfile,num1标识补丁块在newfile中的起始位置,num2标识补丁块在newfile中的最大偏移
块中每一行开头为“-”表示在newfile中将删除这一行,开头为“+”表示在newfile中将添加这一行,没有"-"或"+"的在newfile中保持不变
6.patch使用
因为在patch文件的补丁头“---”一行标识了oldfile的文件路径,所以在打补丁时不需要写出oldfile:
patch <out.patch>
如果补丁为diff -rc ./DIR_A/A ./DIR_B/B > out.patch
在out.patch中为: ---DIR_A/A
而当前目录为./DIR_A/,那么如果打补丁时输入
patch <out.patch
则程序会在./DIR_A/DIR_A/中去寻找文件A,就错了
这时,使用命令patch -p数字 <out.patch将忽略---第数字个"/"前的路径,所以在上述情况下输入
patch -p1 <out.patch则正确
- diff 与 patch
- diff 与 patch补充
- diff与patch
- diff与patch使用
- svn diff 与 patch
- diff与patch
- diff与patch命令
- diff与patch
- diff与patch
- diff 与 patch
- diff 与 patch例子
- diff 与patch
- 【Git】diff 与 patch
- diff 与 patch
- diff与patch的使用
- DIFF 与 PATCH命令使用
- diff & patch
- diff patch
- Android 里面的android_secret_code
- android之sax解析xml文件
- WITH AS 用法
- linux shell编程if语句内判断参数详解
- java gc 种类
- diff与patch
- 创建索引
- 工资
- hdu 1698 Just a Hook
- Linux: fd_set用法
- RGB TO ARGB
- native sql里模糊查询
- WCF布署问题 :HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。
- MTK优美代码赏析1:二分查找