What is a quilt patchset?

2020-02-10 15:01发布

问题:

There is a git command called git-quiltimport. Its man pages says it "Applies a quilt patchset onto the current git branch, preserving the patch boundaries, patch order, and patch descriptions present in the quilt patchset."

However, it doesn't define what a "quilt patchset" is. What is a "quilt patchset"?

回答1:

Quilt is a patch managing tool. The idea is that it makes it easier for you to maintain multiple, discrete sets of changes in a single source client, even if they touch the same files.

The official site is sparse on details, but worth if you are thinking of using it.

If you didn't use quilt, you would probably just have to create another client to maintain the separate change sets, but you would have to patch back and forth changes that would benefit both client source trees.



回答2:

A quilt patchset is a special patch series designed for use with the Quilt toolkit.

Quilt

Quilt is essentially a patch management toolkit. Where it differs from git is that it has no permanent history: The patches themselves can have a de- scription field which usually equates to the commit meta-data in git. Where quilt differs from git is in the anchoring of the patch set (quilt is simply a series of patches above an extracted source base, without any definitive identification of the actual source base being patched).

Git, Quilt and Other Kernel Maintenance Tools (PDF)



回答3:

A quilt patchset is a set of patches that were managed and put together by quilt.

A patchset is a group of patches that can be applied to a set of files - these files may be code, documention, data, or whatever, usually text of some sort. The actual patch is a text file that defines the changes to be made from the original to create the new version, usually generated by using the program 'diff'. The patchset is a collections of those diff outputs, each is usually a logical step in the change process.

Quilt is a program that can manage many patches over large set of files. It can be used to create the patch files, to select which patch files to be applied, to export those patches for others to use, and to import patches from elsewhere.

For more info on using patch and diff, check here: The Ten Minute Guide to diff and patch

For quilt info, try these: Quilt, a patch management system, quilt manpage, and the Quilt project page



回答4:

If you consider a patch set as a set of patches to be applied, git 2.7 will do a better job to distinguish the patch set (a folder with patches) from the file 'series' (a file that gives an ordered list of patches to apply).

See commit ff60ffd (31 Aug 2015) by Juerg Haefliger.

(Merged by Junio C Hamano -- gitster -- in commit db9789a, 05 Oct 2015)

git-quiltimport: add commandline option --series <file>

The quilt series file doesn't have to be located in the same directory with the patches and can be named differently than 'series' as well.
This patch adds a commandline option to allow for a non-standard series filename and location.

The new option is:

--series <file>:

The quilt series file.

The default for the series file is <patches>/series or the value of the $QUILT_SERIES environment variable.


Note: with Git 2.21 (Q1 2019) adds "--keep-non-patch" option.
See commit 1eadaa3 (12 Dec 2018) by Laura Abbott (labbott).
(Merged by Junio C Hamano -- gitster -- in commit 9c51ad5, 18 Jan 2019)

git am has the --keep-non-patch option to pass -b to gi mailinfo for keeping subject prefixes intact.
Allow this option to be used with quiltimport as well.



回答5:

Quilt is a very lightweight SCM tool, like Git, Subversion, or Mercurial. quiltimport lets you import from Quilt into Git.

Very few people use Quilt. Unless you have legacy Quilt patches lying around, you probably have no need for quiltimport. Specifically, if you're happy with Git, there's no reason to adopt Quilt.

(The quilt.pdf in Quilt's docs suggest you might prefer Quilt if you don't want to pay the "overhead" of a more heavyweight version control system when you only need a small fraction of its functionality.)



标签: git quilt