Quilt (software)

Quilt is a software utility for managing a series of changes to the source code of any computer program. Such changes are often referred to as "patches" or "patch sets". Quilt can take an arbitrary number of patches as input and condense them into a single patch. In doing so, Quilt makes it easier for many programmers to test and evaluate the different changes amongst patches before they are permanently applied to the source code.

Tools of this type are very important for distributed software development, in which many programmers collaborate to test and build a single large codebase. For example, quilt is heavily used by the maintainers of the Linux kernel.

Quilt evolved from a set of patch-management scripts originally written by Linux kernel developer Andrew Morton, and was developed by Andreas Grünbacher for maintaining Linux kernel customizations for SuSE Linux. It is now being developed as a community effort, hosted at the GNU Savannah project repository and distributed as free software (its license is the GNU General Public License v2, or later). Quilt's name originated from patchwork quilts.

Quilt has been incorporated into dpkg, Debian's package manager, and is one of the standard source formats supported from the Debian "squeeze" release onwards. This source format is identified as "3.0 (quilt)" by dpkg. Quilt is integrated into the Buildroot, which is notably used by OpenWrt. Quilt is also integrated into and supported by the similar Yocto Project build system supported by the Linux Foundation.

Mercurial queues (mq), an extension of the Mercurial revision control system, provides similar functionality; and StGit provides an equivalent functionality on top of Git.