源码维护基本命令diff_patch

时间:2023-03-09 01:02:23
源码维护基本命令diff_patch

源码维护基本命令

diff------生成源代码补丁
diff [命令行选项] 源文件 新文件
-r 递归处理相应目录
-N 包含新文件到patch
-u 输出统一格式(unified format),这种格式比缺省更紧凑些
-a 可以包含二进制文件到patch中
diff –ruN test1.txt test2.txt > test.patch

patch------给文件/程序打好补丁
patch [命令行选项] [patch文件]
patch -pn(n为自然数) < patch文件

$patch –p<n> <diff_file
$cat diff_file | patch –p<n>
$bzcat diff_file.bz2 | patch –p<n>
$zcat diff_file.gz | patch –p<n>
<n>代表按照patch文件的路径忽略的目录级数,每个“/”代表一级。
p0是完全按照补丁文件中的路径查找要修改的文件
p1则使用去掉第一级“/”得到的相对路径,再基于当前目录,到相应的相对路径下查找要修改的文件。

考虑到顶层目录在不同的系统上可能有所不同,要使用这个选项,就要把patch文件放到要被打补丁的目录下,然后在这个目录下运行命令。

如linux-2.6.14 –> linux-2.6.15 => patch-2.6.14.15
打补丁
$bzcat ../patch-2.6.14.15.bz2 | patch –p1     //上一目录

$patch -p0 <patch-2.6.14.15.bz2                //被打补丁的目录