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 的使用例子相关推荐

  1. python ftp服务器定义handle_python ftp和sftp的例子

    python ftp 上传.下载文件 #获取昨天日期 TODAY = datetime.date.today() YESTERDAY = TODAY - datetime.timedelta(days ...

  2. 高斯回归过程应用例子

    假设现在已经观察到了6个样本点,x为样本点特征(一维的),y为样本输出值. 现在新来了一个样本点,要求是用高斯回归过程来预测新来样本点的输出值.这些样本点显示如下; 其中前面6个点是已知输出值的训练样 ...

  3. 语义网所谓的“本体”的具体例子是什么?人工智能

    作者:王喆 链接:https://www.zhihu.com/question/19558514/answer/26323766 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  4. pytorch记录:seq2seq例子看看这torch怎么玩的

    https://blog.csdn.net/nockinonheavensdoor/article/details/82320580 先看看简单例子: import torch import torc ...

  5. 适用于CUDA GPU的Numba例子

    • 适用于CUDA GPU的Numba例子 矩阵乘法 这是使用CUDA内核的矩阵乘法的简单实现: @cuda.jit def matmul(A, B, C): """Pe ...

  6. c语言连接数据库例子,c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual help).doc...

    这是精心收集的精品经典资料,值得下载保存阅读! c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual h ...

  7. 30 个 php 操作 redis 常用方法代码例子

    这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类 型. list 类型和 set 类型的数据 , 需要的朋友可以 ...

  8. Ubantu下hadoop运行第一个例子wordcount过程

    Ubantu12.04下hadoop-1.2.1运行第一个例子wordcount过程,分享一下 将WordCount.java文件放在Hadoop安装目录下,并在安装目录下创建输入目录input,目录 ...

  9. C#关于面对象多态例子

    //主的喂狗 class Program     {         static void Main(string[] args)         {             //我们来模拟一个主人 ...

最新文章

  1. WordPress工作原理之程序文件执行顺序
  2. CentOS内核优化提示:cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: 没有那个文件或目录...
  3. java web面试_超实用的Java web面试题
  4. NSNotification、delegate和KVO的区别
  5. java中String对象作为参数传递问题
  6. 干货:18 张思维导图,后端技术学习路线长这样!
  7. 机器人卡纸形状图片大全图片_天水生态木天花吊顶图片大全
  8. 软件设计是怎样炼成的(6)——打造系统的底蕴(数据库设计)(下篇)
  9. (转)详解Windows Hash
  10. 全局配置_再次强调:必须站在全局的角度去考虑客厅的内机配置
  11. 数字信号处理实验集合
  12. 在家如何下载各大权威数据库文献
  13. 在业务规则中使用OR有何不妥?
  14. js 数组遍历时删除元素方法总结
  15. ISO/IEC 9126软件质量标准
  16. okcc和vos3000呼叫中心两者间有什么作用要一起使用吗?
  17. 奇特的一生 柳比歇夫坚持56年的“时间统计法” - 读后感
  18. 2021年安全类比赛writeup总结
  19. FoneDog iOS Toolkit(苹果数据恢复软件)官方正式版V2.1.62 | 苹果数据恢复大师下载 | 苹果数据恢复有免费的吗?
  20. 安装 Mongrel

热门文章

  1. Python函数之迭代器
  2. Scala之“逆变”合理性的思考
  3. 机器视觉工业缺陷检测的那些事(二、相机)
  4. 中兴c600olt数据配置_中兴OLT配置
  5. 个人形象即是个人品牌
  6. 前58同城高级副总裁宋波及总监郭冬涉嫌受贿被警方刑拘
  7. 离线数仓0点漂移问题解决:使用拦截器解决0点漂移问题
  8. TPM零知识学习五 —— tpm2-abrmd源码安装
  9. 项目名称:银行ATM存取款机系统设计与实现(sql语句模拟操作)
  10. CleanMyMac X适用于Mac电脑安全的软件