quilt 的使用例子
来源:互联网 发布:sql拼接字符串 编辑:程序博客网 时间:2024/05/29 11:32
1. 建立测试文件hello.c,初始内容如下:
#include <stdlib.h>
#include <stdio.h>
void main(char* args){
printf("Hello world!");
}
2. 安装 quilt:
#sudo apt-get install quilt;
3. 生成一个patch:
#sudo quilt new hello.patch
4. 在当前目录下查看生成了什么?
#ls -a
. .. hello.c patches .pc
其中 patches 目录下 有一个 series 文件, 用vi 查看发现里面记录了 hello.patch; .pc是由quilt自己维护的,我们不用管。
5. 用 quilt top 命令可以查看最近的一个patch, 当前只有一个patch: hello.patch
#quilt top
hello.patch
6. 生成patch的目的是为了为现有代码文件(hello.c)打补丁,但又不是直接在hello.c上修改,因此需要将补丁文件(hello.patch)与代码文件(hello.c)进行关联。
这个关联用的是 quilt add 命令:
#quilt add hello.c
注:因为当前最top的patch是hello.patch,因此hello.c关联的就是hello.patch
7. 现在对hello.c做点修改,看看能不能把修改作用到patch里面去,修改的命令是 quilt edit:
#quilt edit hello.c
注:选择nano作为修改编辑器,在printf语句后面加入注释,如下:
#include <stdlib.h>
#include <stdio.h>
void main(char* args){
printf("Hello world!"); // just add comment
}
8. 用quilt refresh 将改动保存到patch中:
#quilt refresh
注:运行 quilt refresh以后,可以发现在 patches 目录下生成了一个新的文件:hello.patch,那正是我们修改hello.c以后生成的补丁文件。
9. 查看hello.patch内容:
#cat patches/hello.patch
发现变化如下:
...
- printf("Hello world!");
+ printf("Hello world!"); // just add comment
...
这说明hello.patch记录了此次我们对hello.c的改动。
10. 如果要回退刚才的改动,运行 quilt pop:
#sudo quilt pop
注:再次查看hello.c的内容,会发现hello.c确实回到了最初的内容。
11. 查看已经应用的patch, 运行 quilt applied:
#sudo quilt applied
No patches applied
查看未应用的patch, 运行 quilt unapplied:
#sudo quilt applied
hello.patch
12. 重新应用刚才的改动,运行 quilt push:
#sudo quilt push
13. 查看已经应用的patch, 运行 quilt applied:
#sudo quilt applied
hello.patch
14. 查看与当前patch关联的文件,运行 quilt files:
#sudo quilt files
hello.c
15. 从源代码找与之关联的patch,运行 quilt patches xxxx
#sudo quilt patches hello.c
hello.patch
- quilt 的使用例子
- diff, patch, quilt的使用
- quilt的常用使用命令解释
- quilt 使用积累
- diff/patch命令以及quilt工具的使用
- quilt
- openwrt 使用quilt制作patch
- Quilt Tutorial,修改源代码树,使用quilt重新编译
- linux的补丁管理工具--quilt
- 使用quilt管理patch ( by quqi99 )
- 瀑布流视图控件“quilt”的用法
- quilt打Patch出错的原因
- 给内核打patch的利器 quilt
- 【iOS开发】---- 瀑布流视图控件"quilt"的用法
- iOS瀑布流视图控件"quilt"的用法
- diff, patch和quilt补丁制作应用工具的介绍
- quilt-cut
- quilt使用方法
- cvSVM及trainSVM参数
- JavaScript 对象和字串之间的转换
- shell爬虫工具
- 编译ffmpeg 'XXXX' follows non-static declaration错误解决办法
- F7控件经常被设置各种过滤条件
- quilt 的使用例子
- 20130419阿里电话面试记录
- POJ 1038 Bugs Integrated, Inc. 三进制压缩DP
- eclipse
- MFC 串口检测
- 多线程
- GoldenGate PUMP复制
- C#钩子函数放在线程里钩不上的解决办法
- 对自己这一段时间表现的反思