diff/patch命令以及quilt工具的使用

diff命令

diff [option] file1 file2

按“行”比较两个文件的差异。可以比较文件或目录。

option:
-c: 完整的显示两个文件不同行的上下文
-c -C num: 显示上下文的行数,默认为3
-u: 以unified格式显示不同
-u -U num: 显示上下文的行数,默认为3
-p:如果不同在函数中,则提示所在函数名
-r:递归的比较所有子目录
-N:视不存在的文件为空文件来比较
-x PATTERN: 忽略PATTERN匹配的文件

例如,比较compdir01和compdir03两个文件夹,忽略其中的.patch文件:

diff -u compdir01 compdir03 -x *.patch

-X patternfiles: 忽略patternfiles文件中指定的所有PATTERN
[root@ubuntu]others:$ cat patternfiles 
main.c
backtrace.h
diff -u compdir01 compdir03 -X patternfiles

生成一个patch:

diff -u compdir01 compdir03 > compdir.patch


patch命令

打patch:
patch -pN < compdir.patch
其中N为需要剥掉的文件名中的目录级数,例如,compdir.patch文件中指明的文件名为:
/home/myname/personale/compdir01/backtrace.c
而你的backtrace.c文件在/home/yourname/compdir01/目录下,
那你就需要将patch拷贝到/home/yourname/目录下,然后执行
patch -p3 < compdir.patch
即剥掉patch文件中的/home/myname/personale/前缀。
或者将patch拷贝到/home/yourname/compdir01/目录下,然后执行
patch -p4 < compdir.patch
即剥掉patch文件中的/home/myname/personale/compdir01/前缀。

记住,打patch的时候不要过分依赖patch命令,打完之后一定要检查代码。另外,尽量在原始项目中打patch,避免冲突。


quilt命令

quilt命令同样具有生成补丁和应用补丁的功能,但它的优势是还可以作为管理补丁的工具。一个比较大的项目可能由不同开发者共同维护,其中很多修改都以补丁的方式提供,这些补丁可能存在依赖关系。
quilt工具在源代码目录中生
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值