quilt补丁制作

quilt

​ quilt是linux下一个制作和应用补丁的工具,debian包使用这个工具来管理源码包补丁。quilt用堆栈的概念管理补丁的应用。

quilt补丁制作

​ 只要我们 在源代码树里使用了quilt命令,quilt就会在源代码树的根目录建立两个特殊目录:patches和.pc。patches下是它管理的补丁文件,.pc目录下保存着其内部工作状态。

1.新建一个补丁文件
quilt new xxx.patch
2.将补丁和需要修改的文件关联
quilt add file

关联后即可对文件进行修改,如要关联多个文件,重复添加然后修改即可。

3.查看当前补丁是否正确
quilt diff
4.保存补丁
quilt refresh

会保存在patches下。

5.其它命令
quilt push -a	应用所有补丁
quilt pop -a	撤消所有应用
quilt push/pop xxx	应用/撤消某个补丁
quilt top	查看栈顶补丁
quilt import xxx	导入一个补丁文件
quilt files	查看当前补丁中已修改的文件
quilt series	查看已管理的补丁
quilt remove [patch] file 从补丁中移除文件
quilt delete patch	删除一个补丁

patch命令

使用diff制作补丁

mkdir diff
vi test1.txt
vi test2.txt

test1.txt文件内容如下

aaaa

test2.txt文件内容如下

aaaa
bbbb

使用diff命令制作patch文件

diff -Naur test1.txt test2.txt > test.patch

diff参数解释
-N 在比较目录时如果某个文件只出现了一次,那么在比较不同时会默认和空文件比较
-a 将所有的文件都作为普通text(之比较文本文件)
-u 以合并的方式显示文件内容的不同
-r 如果是文件夹则进行递归进行比较

之后在当前目录中会存在三个文件

test1.txt test2.txt test.patch

test.patch 文件的内容

--- test1.txt   2018-08-01 13:17:33.530350672 +0800
+++ test2.txt   2018-08-01 13:18:54.326350260 +0800
@@ -1 +1,2 @@ 
 aaaa
+bbbb

使用补丁更新文件

patch -p0 < testfile.patch 

-pn为忽略目录,为1就忽略一级目录,为0不忽略。


   转载规则


《quilt补丁制作》 yljia 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录