什么是Quilt Patchset?

17

有一个名为git-quiltimport的git命令。它的手册说它“将一个quilt补丁集应用到当前的git分支上,保留在quilt补丁集中存在的补丁边界、补丁顺序和补丁描述。”

然而,它没有定义什么是“quilt补丁集”。什么是“quilt补丁集”?


注意:git 2.7(2015年第四季度)将允许使用非标准的“系列”文件名和位置。请参见下面的我的回答 - VonC
5个回答

19

Quilt是一个补丁管理工具。其理念在于,即使多个变更集合涉及相同的文件,它也可以使您更轻松地维护单个源客户端中的多个离散变更集合。

官方网站缺乏详细信息,但如果您正在考虑使用它,它还是值得一试的。

如果您不使用Quilt,则可能只需创建另一个客户端来维护单独的变更集,但您必须来回打补丁以使两个客户端源树都受益。


13

一个 quilt 补丁集是专门为 Quilt 工具包设计的补丁系列。

Quilt

Quilt 是一种补丁管理工具包。与 git 不同的是,它没有永久的历史记录:补丁本身可以有一个描述字段,通常等同于 git 中的提交元数据。Quilt 与 git 的不同之处在于对补丁集的定位(简单来说,Quilt 就是在已提取的源代码基础上的一系列补丁,而没有任何确切的标识正在修补的实际源代码基础)。

Git、Quilt 和其他内核维护工具(PDF)


9
一个quilt patchset是由quilt管理和组合的一组补丁。
一个patchset是一组可以应用于一组文件的补丁,这些文件可以是代码、文档、数据或其他任何类型的文件,通常是一些文本文件。实际的补丁是一个文本文件,它定义了从原始版本到创建新版本所需的更改,通常是使用程序“diff”生成的。patchset是这些diff输出的集合,每个输出通常都是更改过程中的逻辑步骤。
Quilt是一个可以在大量文件上管理许多补丁的程序。它可以用于创建补丁文件、选择要应用的补丁文件、将这些补丁导出供他人使用以及从其他地方导入补丁。
有关使用patch和diff的更多信息,请查看此处: diff和patch的十分钟指南 有关quilt信息,请尝试以下链接: Quilt,一个补丁管理系统quilt manpageQuilt项目页面

如果提供一个交叉引用的URL,你可能会得到我的点赞。 - Jonathan Leffler

3

Quilt是一种非常轻量级的SCM工具,类似于Git、Subversion或Mercurial。 quiltimport使您可以从Quilt导入到Git。

很少有人使用Quilt。除非您有遗留的Quilt补丁,否则您可能不需要quiltimport。特别是,如果您对Git感到满意,就没有理由采用Quilt。

(Quilt文档中的quilt.pdf建议,如果您只需要其功能的一小部分,而不想支付更重量级版本控制系统的“开销”,则可能更喜欢Quilt。)


0

如果您将一个补丁集视为一组要应用的补丁,git 2.7 将更好地区分补丁集(一组包含补丁的文件夹)和“series”文件(提供要应用的补丁的有序列表的文件)。

参见Juerg Haefliger于2015年8月31日提交的commit ff60ffd

(由Junio C Hamano -- gitster --于2015年10月5日合并至commit db9789a

git-quiltimport:添加命令行选项--series <file>

补丁集文件不必与补丁位于同一目录中,也可以具有不同于“series”名称的名称。
此补丁添加了一个命令行选项,允许非标准系列文件名和位置。

新选项为:

--series <file>:

补丁系列文件。 系列文件的默认值为<patches>/series或$QUILT_SERIES环境变量的值。

注意:Git 2.21(2019年第一季度)增加了 "--keep-non-patch"选项。
请参见commit 1eadaa3(2018年12月12日)由Laura Abbott (labbott) 提交。
(由Junio C Hamano -- gitster --合并于commit 9c51ad5, 2019年1月18日)

git am--keep-non-patch选项,可以将-b传递给gi mailinfo以保留主题前缀
同时允许在quiltimport中使用此选项。


1
这个答案并没有解释什么是quilt patchset,它只是指出了一些quiltimport命令行选项的附加内容。 - Dan Fabulich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接