被子备忘录
引入
sudo apt install quilt -y
alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg"
complete -F _longopt -o filenames dquilt
_longopt的补全函数与cat相同。
准备配置文件
d=. ; while [ ! -d $d/debian -a `readlink -e $d` != / ]; do d=$d/..; done
if [ -d $d/debian ] && [ -z $QUILT_PATCHES ]; then
# if in Debian packaging tree with unset $QUILT_PATCHES
QUILT_PATCHES="debian/patches"
QUILT_PATCH_OPTS="--reject-format=unified"
QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto"
QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"
QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33"
if ! [ -d $d/debian/patches ]; then mkdir $d/debian/patches; fi
fi
准备放置补丁的目录。
mkdir debian/patches
注册补丁文件
我們先創建一個空的補丁文件。
dquilt new foo.patch
补丁文件将被注册在名为debian/patches/series的文件中。
添加要编辑的文件
dquilt add foo.bar
编辑
vim foo.bar
还有一个同时进行add和vim操作的edit子命令存在。
将差异映射到补丁文件中。
dquilt refresh
差分将保存在debian/patches/foo.patch中。
给补丁文件(差分文件)加上头部。
dquilt header -e
我有点不懂它的用途,但是是类似于提交评论的东西吗?
在更改日志中记录更改内容
dch -i
dch -v <version>-<revision>
Debian/changelog将添加更改内容。
根据系列文件的顺序,取消一个修补程序。
dquilt pop
foo.patch已被移除,应该恢复到编辑之前的状态。
按照系列文件中的顺序逐一应用补丁
dquilt push
foo.patch被应用了,应该已经恢复到编辑后的状态了。
应用/移除所有补丁文件。
dquilt push -a
dquilt pop -a
显示到目前为止的差异
dquilt diff