linux中使用diff和patch维护源码包
2010-03-30 12:11
281 查看
1.diff的使用
diff用于比较两个文件或者目录的不同然后生成一份报告。
用法如下:
假设file.c为原来的文件,file.c.new为修改了的文件,现在要制作一个补丁文件使得安装此补丁的人可以从file.c升级到file.c.new相同的内容,方法如下
diff -u file.c file.c.new >file.c.new.path
此时在该目录下就会生成一个补丁文件file.c.new.path,生成的补丁文件的文件名可以随意指定。
把该补丁文件file.c.new.path拷贝至目标文件所在相同目录,使用命令patch -p1 < file.c.new.path(patch讲解见下面)就可以完成升级。
diff的其他参数如下:
-r 对目录进行递归处理
-u 输出统一格式,diff有"传统"和"统一"两种格式,现在一般使用"统一"格式,比较而言,统一格式生成的文件大,但包含了更多的信息,有利于阅读与定位
-N 补丁中包含整个新文件
-a 补丁中包含二进制文件
diff可以对整个目录进行比较,生成补丁文件
例如有hello-1.0 和hello-1.1两个目录,其中hello-1.1为hello-1.0的更新
命令:
$diff -ruNa hello-1.0 hello-1.1 >hello-1.1.patch
patch:(转载)
简单的说,patch就是利用diff制作的补丁来实现源文件(夹)和目的文件(夹)的转换。这样说就意味着你可以有源文件(夹)――>目的文件(夹),也可以目的文件(夹)――>源文件(夹)。下面介绍几个最常用选项:
-p0 选项要从当前目录查找目的文件(夹)
-p1 选项要忽略掉第一层目录,从当前目录开始查找
************************************************************
在这里以实例说明:
--- old/modules/pcitable Mon Sep 27 11:03:56 1999
+++ new/modules/pcitable Tue Dec 19 20:05:41 2000
如果使用参数-p0,那就表示从当前目录找一个叫做old的文件夹,在它下面寻找modules下的pcitable文件来执行patch操作。
如果使用参数-p1,那就表示忽略第一层目录(即不管old),从当前目录寻找modules的文件夹,在它下面找pcitable。这样的前提是当前目录必须为modules所在的目录。而diff补丁文件则可以在任意位置,只要指明了diff补丁文件的路径就可以了。当然,可以用相对路径,也可以用绝对路径。不过我一般习惯用相对路径。
************************************************************
diff用于比较两个文件或者目录的不同然后生成一份报告。
用法如下:
假设file.c为原来的文件,file.c.new为修改了的文件,现在要制作一个补丁文件使得安装此补丁的人可以从file.c升级到file.c.new相同的内容,方法如下
diff -u file.c file.c.new >file.c.new.path
此时在该目录下就会生成一个补丁文件file.c.new.path,生成的补丁文件的文件名可以随意指定。
把该补丁文件file.c.new.path拷贝至目标文件所在相同目录,使用命令patch -p1 < file.c.new.path(patch讲解见下面)就可以完成升级。
diff的其他参数如下:
-r 对目录进行递归处理
-u 输出统一格式,diff有"传统"和"统一"两种格式,现在一般使用"统一"格式,比较而言,统一格式生成的文件大,但包含了更多的信息,有利于阅读与定位
-N 补丁中包含整个新文件
-a 补丁中包含二进制文件
diff可以对整个目录进行比较,生成补丁文件
例如有hello-1.0 和hello-1.1两个目录,其中hello-1.1为hello-1.0的更新
命令:
$diff -ruNa hello-1.0 hello-1.1 >hello-1.1.patch
patch:(转载)
简单的说,patch就是利用diff制作的补丁来实现源文件(夹)和目的文件(夹)的转换。这样说就意味着你可以有源文件(夹)――>目的文件(夹),也可以目的文件(夹)――>源文件(夹)。下面介绍几个最常用选项:
-p0 选项要从当前目录查找目的文件(夹)
-p1 选项要忽略掉第一层目录,从当前目录开始查找
************************************************************
在这里以实例说明:
--- old/modules/pcitable Mon Sep 27 11:03:56 1999
+++ new/modules/pcitable Tue Dec 19 20:05:41 2000
如果使用参数-p0,那就表示从当前目录找一个叫做old的文件夹,在它下面寻找modules下的pcitable文件来执行patch操作。
如果使用参数-p1,那就表示忽略第一层目录(即不管old),从当前目录寻找modules的文件夹,在它下面找pcitable。这样的前提是当前目录必须为modules所在的目录。而diff补丁文件则可以在任意位置,只要指明了diff补丁文件的路径就可以了。当然,可以用相对路径,也可以用绝对路径。不过我一般习惯用相对路径。
************************************************************
相关文章推荐
- 使用diff和patch维护源码
- linux diff patch使用说明
- 用Diff和Patch工具维护源码
- linux 下 patch和diff使用
- [转] 用Diff和Patch工具维护源码
- linux--diff与patch的使用指南
- 用Diff和Patch工具维护源码
- Linux使用diff和patch制作和安装补丁实例
- 用Diff和Patch工具维护源码
- 用Diff和Patch工具维护源码
- 用Diff和Patch工具维护源码
- 用Diff和Patch工具维护源码
- Linux下使用diff/patch制作/使用补丁文件
- 用Diff和Patch工具维护源码
- Linux下给内核或源码制作和打补丁操作命令--diff、patch
- 用Diff和Patch工具维护源码
- Linux下命令diff与patch的配合使用
- 用Diff和Patch工具维护源码
- Linux下diff与patch命令的配合使用
- 用Diff和Patch工具维护源码