您的位置:首页 > 产品设计 > UI/UE

quilt用法

2017-02-10 11:40 127 查看
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

此处最好执行命令quilt push -a

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

 

转载自:http://blog.csdn.net/hbsong75/article/details/8825184
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  quilt