20.3.2 Quilt
Quilt[1]是一款补丁列表管理软件,用Shell语言开发,安装也很简单,在Debian/Ubuntu上直接用下面的命令即可安装:
$sudo aptitude install quilt
Quilt约定俗成将补丁集放在项目根目录下的子目录patches中,否则需要通过环境变量QUILT_PATCHES对路径进行设置。为了减少麻烦,在上面用stg export导出补丁的时候就导出到了patches目录下。
简单说一下Quilt的使用,会发现真的和StGit很像,实际上是先有的Quilt,后有的StGit。Quilt使用过程如下。
(1)重置到三个提交前的版本,否则应用补丁的时候会失败。不要忘了删除src/locale目录。
$git reset—hard HEAD~3
$rm-rf src/locale/
(2)显示补丁列表。
$quilt series
01-fix-typo-help-to-help
02-add-i18n-support
03-translate-for-chinese
(3)应用一个补丁。
$quilt push
Applying patch 01-fix-typo-help-to-help
patching file src/main.c
Now at patch 01-fix-typo-help-to-help
(4)下一个补丁是什么?
$quilt next
02-add-i18n-support
(5)应用全部补丁。
$quilt push-a
Applying patch 02-add-i18n-support
patching file src/Makefile
patching file src/locale/helloworld.pot
patching file src/locale/zh_CN/LC_MESSAGES/helloworld.po
patching file src/main.c
Applying patch 03-translate-for-chinese
patching file src/locale/zh_CN/LC_MESSAGES/helloworld.po
Now at patch 03-translate-for-chinese
Quilt的功能还有很多,请参照Quilt的在线帮助,恕不一一举例。
Git提供了一个名为git quiltimport的命令,可以非常方便地将Quilt格式的补丁集转化为一个一个的Git提交,是前面介绍的git am命令的一个补充。例如要将位于patches目录下的Quilt补丁集应用到版本库中,可以执行下面的命令:
$git quiltimport