Quilt (software)
{{Other uses|Quilt (disambiguation)}}
{{For|the sewing technique|Quilting}}
{{Use mdy dates|date=November 2014}}
{{Infobox software
| name = Quilt
| logo =
| screenshot =
| caption =
| collapsible =
| author =
| developer = Andreas Gruenbacher, Jean Delvare
| released =
| discontinued =
| latest release version = {{wikidata|property|preferred|references|edit|P348|P548=Q2804309}} | latest release date = {{Start date and age|{{wikidata|qualifier|preferred|single|P348|P548=Q2804309|P577}}|df=yes}}
| latest preview version =
| latest preview date =
| frequently updated =
| programming language = Bash script
| operating system = Cross-platform
| platform =
| size =
| language =
| status =
| genre = Patch management
| license = GNU GPLv2+
| website = {{URL|http://savannah.nongnu.org/projects/quilt}}
}}
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.{{cite web|url=https://www.linux.com/news/special-feature/linux-developers/600241:30-linux-kernel-developers-in-30-weeks-greg-kroah-hartman |title=30 Linux Kernel Developers in 30 Weeks: Greg Kroah-Hartman |publisher=Linux.com |date=July 9, 2012 |access-date=August 22, 2014}}
Quilt evolved from a set of patch-management scripts originally written by Linux kernel developer Andrew Morton,{{cite web|url=https://lwn.net/Articles/13518/ |title=patch management scripts |website=Lwn.net |date=2002-10-20 |access-date=2016-05-06}} and was developed by Andreas Grünbacher for maintaining Linux kernel customizations for SuSE Linux.{{cite journal |author=Grünbacher, Andreas |date=June 12, 2005 |title=How To Survive With Many Patches, or Introduction to Quilt |url=https://git.savannah.nongnu.org/cgit/quilt.git/plain/doc/quilt.pdf |url-status=live |archive-url=https://web.archive.org/web/20070221103528/http://www.suse.de/~agruen/quilt.pdf |archive-date=February 21, 2007 |access-date=April 25, 2008 |website=Suse.de |df=mdy-all}} 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,{{cite web|url=http://lists.debian.org/debian-devel-changes/2009/11/msg02647.html |title=Accepted dpkg 1.15.5.3 (source all amd64) |publisher=Lists.debian.org |date=November 27, 2009 |access-date=August 22, 2014}} 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.{{cite web|url=http://wiki.openwrt.org/doc/devel/patches |title=Working with patches [OpenWrt Wiki] |website=Wiki.openwrt.org |date=2015-11-30 |access-date=2016-05-06}} Quilt is also integrated into and supported by the similar Yocto Project build system supported by the Linux Foundation.{{cite web|url=http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html#using-a-quilt-workflow|title=Using Quilt in Your Workflow|date=2016-12-13|access-date=2016-12-13}}
Mercurial queues (mq), an extension of the Mercurial revision control system, provides similar functionality;{{cite web|url=http://www.selenic.com/mercurial/wiki/index.cgi/MqExtension |title=MqExtension - Mercurial |publisher=Selenic.com |access-date=August 22, 2014}} and StGit provides an equivalent functionality on top of Git.{{cite web|url=https://stacked-git.github.io/#other-patch-stack-tools|title=Stacked Git|website=stacked-git.github.io|access-date=2022-04-12}} Git itself has similar functionality since 2.38 with --update-refs
option to git rebase
.{{Cite web |date=2022-11-08 |title=Working with stacked branches in Git is easier with --update-refs |url=https://andrewlock.net/working-with-stacked-branches-in-git-is-easier-with-update-refs/ |access-date=2025-02-11 |website=Andrew Lock {{!}} .NET Escapades |language=en}}
See also
{{Portal|Free and open-source software}}
References
{{Reflist}}
External links
- {{Official website|savannah.nongnu.org/projects/quilt}}
- [http://www.shakthimaan.com/downloads/glv/quilt-tutorial/quilt-doc.pdf Quilt Tutorial] (PDF)