Linux Patch 制作方法 diff和patch

Linux Patch 制作方法 diff和patch

http://bbs.voip88.com/forum.php?mod=viewthread&tid=108&fromuid=7

 

 

使用diff/patch为代码打补丁 
1.diff的使用 
diff可以完成比较功能,生成补丁文件 
格式::diff [option] oldfile newfile 
常用的option选项有: 
-r 对目录进行递归处理 
-u 输出统一格式,diff有"传统"和"统一"两种格式,现在一般使用"统一"格式,比较而言,统一格式生成的文件大,但包含了更多的信息,有利于阅读与定位 
-N 补丁中包含整个新文件 
-a 补丁中包含二进制文件 
缺省时,diff向标准输出打印,所以一般都重定向到文件并以patch为后缀,也就是所谓的补丁文件 
举例: 
/* oldfile hello.c */ 
void main() 

printf("hello the world!/n"); 



/* newfile hello-new.c */ 
void main() 

printf("HELLO THE WORLD!/n"); 


使用以下命令生成补丁文件hello.patch 
$diff -u hello.c hello-new.c >hello.patch 


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 


2.patch的使用 
把补丁运用到原代码上的命令为patch 
patch [-b] suffix <patchfile 

如果patch失败,patch会把成功的行打上补丁,失败的行存为以.rej为后缀的文件折,并生成原文件的备份,如果成功则不生成备份。 -b选项可以指定后缀名。 
注意:运行patch所在的目录应该与用diff生成补丁的时候一致。例如,上面在hello-1.0目录的上层目录生成补丁文件,patch时也应该在此目录进行。

猜你喜欢

转载自huaonline.iteye.com/blog/1756453
今日推荐