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不忽略。