Provided by: quilt_0.61-1_all bug

NAME

       quilt - tool to manage series of patches

SYNOPSIS

       quilt [-h] command [options]

DESCRIPTION

       Quilt is a tool to manage large sets of patches by keeping track of the changes each patch
       makes. Patches can be applied, un-applied, refreshed, etc. The key  philosophical  concept
       is that your primary output is patches.

       With  quilt,  all work occurs within a single directory tree. Commands can be invoked from
       anywhere within the source tree. They are of the form quilt cmd similar to CVS, svn or git
       commands.  They can be abbreviated as long as the specified part of the command is unique.
       All commands print some help text with quilt cmd -h.

       Quilt manages a stack of patches. Patches are applied incrementally on  top  of  the  base
       tree  plus all preceding patches. They can be pushed on top of the stack (quilt push), and
       popped off the stack (quilt pop).  Commands are available for querying the contents of the
       series  file  (quilt  series,  see below), the contents of the stack (quilt applied, quilt
       previous, quilt top), and the patches that are not applied at a particular  moment  (quilt
       next,  quilt  unapplied).   By  default,  most  commands apply to the topmost patch on the
       stack.

       Patch files are located in the patches sub-directory of the source tree  (see  EXAMPLE  OF
       WORKING  TREE  below). The QUILT_PATCHES environment variable can be used to override this
       location. When  not  found  in  the  current  directory,  that  subdirectory  is  searched
       recursively  in  the  parent  directories (this is similar to the way git searches for its
       configuration files). The patches directory may contain sub-directories. It may also be  a
       symbolic link instead of a directory.

       A  file  called series contains a list of patch file names that defines the order in which
       patches are applied. Unless there are  means  by  which  series  files  can  be  generated
       automatically,  it  is  usually  provided  along with a set of patches. In this file, each
       patch file name is on a separate line. Patch files are identified by path names  that  are
       relative to the patches directory; patches may be in sub-directories below this directory.
       Lines in the series file that start with a hash character (#) are ignored.  You  can  also
       add  a  comment  after  each  patch  file  name, introduced by a space  followed by a hash
       character. When quilt adds, removes, or renames  patches,  it  automatically  updates  the
       series  file.  Users  of  quilt can modify series files while some patches are applied, as
       long as the applied patches remain in their original order.

       Different series files can be used to assemble patches in  different  ways,  corresponding
       for example to different development branches.

       Before  a  patch  is  applied  (or ``pushed on the stack''), copies of all files the patch
       modifies are saved to the .pc/patch directory. The patch is added to the list of currently
       applied  patches (.pc/applied-patches). Later when a patch is regenerated (quilt refresh),
       the backup copies in .pc/patch are compared with the current versions of the files in  the
       source tree using GNU diff.

       Documentation  related  to  a patch can be put at the beginning of a patch file.  Quilt is
       careful to preserve all text that precedes the actual patch when doing a refresh. (This is
       limited to patches in unified format; see diff documentation).

       The  series file is looked up in the .pc directory, in the root of the source tree, and in
       the patches directory.  The first series file that is found is used. This may  also  be  a
       symbolic  link, or a file with multiple hard links.  Usually, only one series file is used
       for a set of patches, so the patches sub-directory is a convenient location.

       The .pc directory and its sub-directories cannot be relocated, but it can  be  a  symbolic
       link.  While  patches are applied to the source tree, this directory is essential for many
       operations, including taking patches off the stack (quilt  pop),  and  refreshing  patches
       (quilt  refresh).   Files  in the .pc directory are automatically removed when they are no
       longer needed, so there is no need to clean up manually.

QUILT COMMANDS REFERENCE

       add [-P patch] {file} ...

           Add one or more files to the topmost or named patch.  Files must be added to the patch
           before  being  modified.  Files that are modified by patches already applied on top of
           the specified patch cannot be added.

           -P patch

               Patch to add files to.

       annotate [-P patch] {file}

           Print an annotated listing of the specified file showing which  patches  modify  which
           lines. Only applied patches are included.

           -P patch

               Stop checking for changes at the specified rather than the topmost patch.

       applied [patch]

           Print  a  list  of  applied  patches, or all patches up to and including the specified
           patch in the file series.

       delete [-r] [--backup] [patch|-n]

           Remove the specified or topmost patch from the series file.  If the patch is  applied,
           quilt  will  attempt  to remove it first. (Only the topmost patch can be removed right
           now.)

           -n  Delete the next patch after topmost, rather than the specified or topmost patch.

           -r  Remove the deleted patch file from the patches directory as well.

           --backup

               Rename the patch file to patch~ rather than deleting it.  Ignored if not used with
               `-r'.

       diff  [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-R] [-P patch] [--snapshot]
       [--diff=utility] [--no-timestamps] [--no-index] [--sort] [--color] [file ...]

           Produces a diff of the specified file(s) in the topmost or  specified  patch.   If  no
           files are specified, all files that are modified are included.

           -p n
               Create a -p n style patch (-p0 or -p1 are supported).

           -p ab
               Create  a  -p1  style  patch,  but  use  a/file and b/file as the original and new
               filenames instead of the default dir.orig/file and dir/file names.

           -u, -U num, -c, -C num

               Create a unified diff (-u, -U) with num lines of context. Create  a  context  diff
               (-c, -C) with num lines of context. The number of context lines defaults to 3.

           --no-timestamps

               Do not include file timestamps in patch headers.

           --no-index

               Do not output Index: lines.

           -z  Write  to  standard output the changes that have been made relative to the topmost
               or specified patch.

           -R  Create a reverse diff.

           -P patch

               Create a diff for the specified patch.  (Defaults to the topmost patch.)

           --combine patch

               Create a combined diff for all patches between this patch and the patch  specified
               with -P. A patch name of `-' is equivalent to specifying the first applied patch.

           --snapshot

               Diff against snapshot (see `quilt snapshot -h').

           --diff=utility

               Use the specified utility for generating the diff. The utility is invoked with the
               original and new file name as arguments.

           --color[=always|auto|never]

               Use syntax coloring (auto activates it only if the output is a tty).

           --sort
               Sort files by their name instead of preserving the original order.

       edit file ...

           Edit the specified file(s) in $EDITOR after adding it (them) to the topmost patch.

       files [-v] [-a] [-l] [--combine patch] [patch]

           Print the list of files that the topmost or specified patch changes.

           -a  List all files in all applied patches.

           -l  Add patch name to output.

           -v  Verbose, more user friendly output.

           --combine patch

               Create a listing for all patches between this patch and the topmost  or  specified
               patch. A patch name of `-' is equivalent to specifying the first applied patch.

       fold [-R] [-q] [-f] [-p strip-level]

           Integrate the patch read from standard input into the topmost patch: After making sure
           that all files modified are part of the topmost patch, the patch is applied  with  the
           specified strip level (which defaults to 1).

           -R  Apply patch in reverse.

           -q  Quiet operation.

           -f  Force  apply, even if the patch has rejects. Unless in quiet mode, apply the patch
               interactively: the patch utility may ask questions.

           -p strip-level

               The number  of  pathname  components  to  strip  from  file  names  when  applying
               patchfile.

       fork [new_name]

           Fork  the topmost patch.  Forking a patch means creating a verbatim copy of it under a
           new name, and use that new name instead of the original one  in  the  current  series.
           This  is useful when a patch has to be modified, but the original version of it should
           be preserved, e.g.  because it is used in another  series,  or  for  the  history.   A
           typical sequence of commands would be: fork, edit, refresh.

           If  new_name  is missing, the name of the forked patch will be the current patch name,
           followed by `-2'.  If the patch name already ends in a dash-and-number, the number  is
           further incremented (e.g., patch.diff, patch-2.diff, patch-3.diff).

           It  seems  that  graphviz is currently not installed (unable to find the tred binary).
           You must install it to use 'quilt graph'.

       grep [-h|options] {pattern}

           Grep  through  the  source  files,  recursively,  skipping  patches  and  quilt  meta-
           information.  If  no  filename  argument  is given, the whole source tree is searched.
           Please see the grep(1) manual page for options.

           -h  Print this help. The grep -h option can be passed after a double-dash (--). Search
               expressions  that  start  with a dash can be passed after a second double-dash (--
               --).

       header [-a|-r|-e]  [--backup]  [--dep3]  [--strip-diffstat]  [--strip-trailing-whitespace]
       [patch]

           Print or change the header of the topmost or specified patch.

           -a, -r, -e

               Append  to  (-a) or replace (-r) the exiting patch header, or edit (-e) the header
               in $EDITOR. If none of these options is given, print the patch header.

           --strip-diffstat

               Strip diffstat output from the header.

           --strip-trailing-whitespace

               Strip trailing whitespace at the end of lines of the header.

           --backup

               Create a backup copy of the old version of a patch as patch~.

           --dep3

               When  editing  (-e),  insert  a   template   with   DEP-3   headers.    DEP-3   is
               http://dep.debian.net/deps/dep3/ Patch Tagging Guidelines.

       import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ...

           Import  external  patches.   The  patches  will  be inserted following the current top
           patch, and must be pushed after import to apply them.

           -p num

               Number of directory levels to strip when applying (default=1)

           -R

               Apply patch in reverse.

           -P patch

               Patch filename to use inside quilt. This option can only be used when importing  a
               single patch.

           -f  Overwrite/update existing patches.

           -d {o|a|n}

               When  overwriting  in  existing patch, keep the old (o), all (a), or new (n) patch
               header. If both patches include headers,  this  option  must  be  specified.  This
               option is only effective when -f is used.

       mail  {--mbox file|--send} [--select] [-m text] [-M file] [--prefix prefix] [--sender ...]
       [--from ...] [--to ...] [--cc  ...]  [--bcc  ...]  [--subject  ...]  [--reply-to  message]
       [first_patch [last_patch]]

           Create  mail  messages from a specified range of patches, or all patches in the series
           file, and either store them in a mailbox file, or send them immediately. The editor is
           opened     with     a     template     for     the     introduction.     Please    see
           /usr/share/doc/quilt/README.MAIL for details.  When specifying a range of  patches,  a
           first  patch  name  of `-' denotes the first, and a last patch name of `-' denotes the
           last patch in the series.

           -m text

               Text to use as the text in the introduction. When this option is used, the  editor
               will not be invoked, and the patches will be processed immediately.

           -M file

               Like the -m option, but read the introduction from file.

           --prefix prefix

               Use  an alternate prefix in the bracketed part of the subjects generated. Defaults
               to `patch'.

           --mbox file

               Store all messages in the specified file in mbox format. The  mbox  can  later  be
               sent using formail, for example.

           --send

               Send the messages directly.

           --sender

               The   envelope   sender   address  to  use.  The  address  must  be  of  the  form
               `user@domain.name'. No display name is allowed.

           --from, --subject

               The values for the From and Subject headers to use. If no --from option is  given,
               the value of the --sender option is used.

           --to, --cc, --bcc

               Append a recipient to the To, Cc, or Bcc header.

           --signature file

               Append the specified signature to messages (defaults to ~/.signature if found; use
               `-' for no signature).

           --reply-to message

               Add the appropriate headers to reply to the specified message.

           --select

               Edit a copy of the series file to select patches to send.

       new [-p n|-p ab] {patchname}

           Create a new patch with the specified file name,  and  insert  it  after  the  topmost
           patch.  The  name  can  be  prefixed  with a sub-directory name, allowing for grouping
           related patches together.

           -p n
               Create a -p n style patch (-p0 or -p1 are supported).

           -p ab
               Create a -p1 style patch, but use a/file  and  b/file  as  the  original  and  new
               filenames instead of the default dir.orig/file and dir/file names.

               Quilt can be used in sub-directories of a source tree. It determines the root of a
               source tree by searching  for  a  patches  directory  above  the  current  working
               directory.  Create  a  patches  directory  in the intended root directory if quilt
               chooses a top-level directory that is too high up in the directory tree.

       next [patch]

           Print the name of the next patch after the specified or topmost patch  in  the  series
           file.

       patches [-v] {file} [files...]

           Print the list of patches that modify any of the specified files. (Uses a heuristic to
           determine which files are modified by unapplied patches.  Note that this heuristic  is
           much slower than scanning applied patches.)

           -v  Verbose, more user friendly output.

           --color[=always|auto|never]

               Use syntax coloring (auto activates it only if the output is a tty).

       pop [-afRqv] [num|patch]

           Remove  patch(es)  from  the  stack  of applied patches.  Without options, the topmost
           patch is removed.  When a number is specified, remove the specified number of patches.
           When a patch name is specified, remove patches until the specified patch end up on top
           of the stack.  Patch names may include the patches/ prefix, which means that  filename
           completion can be used.

           -a  Remove all applied patches.

           -f  Force  remove.  The  state before the patch(es) were applied will be restored from
               backup files.

           -R  Always verify if the patch removes cleanly; don't rely on timestamp checks.

           -q  Quiet operation.

           -v  Verbose operation.

       previous [patch]

           Print the name of the previous patch before the specified  or  topmost  patch  in  the
           series file.

       push   [-afqv]   [--merge[=merge|diff3]]  [--leave-rejects]  [--color[=always|auto|never]]
       [num|patch]

           Apply patch(es) from the series file.  Without options, the next patch in  the  series
           file  is  applied.  When a number is specified, apply the specified number of patches.
           When a patch name is specified, apply all patches up to and  including  the  specified
           patch.   Patch  names  may  include  the  patches/  prefix,  which means that filename
           completion can be used. The mtime of all touched files will be  exactly  the  same  to
           prevent time skews.

           -a  Apply all patches in the series file.

           -q  Quiet operation.

           -f  Force  apply, even if the patch has rejects. Unless in quiet mode, apply the patch
               interactively: the patch utility may ask questions.

           -v  Verbose operation.

           --fuzz=N

               Set the maximum fuzz factor (default: 2).

           -m, --merge[=merge|diff3]

               Merge the patch file into the original files (see patch(1)).

           --leave-rejects

               Leave around the reject files patch produced, even if the patch  is  not  actually
               applied.

           --color[=always|auto|never]

               Use syntax coloring (auto activates it only if the output is a tty).

       refresh  [-p  n|-p  ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] [--no-timestamps] [--no-
       index] [--diffstat] [--sort] [--backup] [--strip-trailing-whitespace] [patch]

           Refreshes the specified patch, or the topmost patch by  default.   Documentation  that
           comes before the actual patch in the patch file is retained.

           It  is  possible to refresh patches that are not on top.  If any patches on top of the
           patch to refresh modify the same files, the script aborts  by  default.   Patches  can
           still  be  refreshed  with -f.  In that case this script will print a warning for each
           shadowed file, changes by more recent patches will be ignored,  and  only  changes  in
           files  that  have  not  been  modified  by  any more recent patches will end up in the
           specified patch.

           -p n
               Create a -p n style patch (-p0 or -p1 supported).

           -p ab
               Create a -p1 style patch, but use a/file  and  b/file  as  the  original  and  new
               filenames instead of the default dir.orig/file and dir/file names.

           -u, -U num, -c, -C num

               Create  a  unified  diff (-u, -U) with num lines of context. Create a context diff
               (-c, -C) with num lines of context. The number of context lines defaults to 3.

           -z[new_name]

               Create a new patch containing the changes instead of refreshing the topmost patch.
               If  no  new name is specified, `-2' is added to the original patch name, etc. (See
               the fork command.)

           --no-timestamps

               Do not include file timestamps in patch headers.

           --no-index

               Do not output Index: lines.

           --diffstat

               Add a diffstat section to the patch  header,  or  replace  the  existing  diffstat
               section.

           -f  Enforce refreshing of a patch that is not on top.

           --backup

               Create a backup copy of the old version of a patch as patch~.

           --sort
               Sort files by their name instead of preserving the original order.

           --strip-trailing-whitespace

               Strip trailing whitespace at the end of lines.

       remove [-P patch] {file} ...

           Remove  one or more files from the topmost or named patch.  Files that are modified by
           patches on top of the specified patch cannot be removed.

           -P patch

               Remove named files from the named patch.

       rename [-P patch] new_name

           Rename the topmost or named patch.

           -P patch

               Patch to rename.

       revert [-P patch] {file} ...

           Revert uncommitted changes to the topmost or named patch for  the  specified  file(s):
           after the revert, 'quilt diff -z' will show no differences for those files. Changes to
           files that are modified by patches on top of the specified patch cannot be reverted.

           -P patch

               Revert changes in the named patch.

       series [-v]

           Print the names of all patches in the series file.

           --color[=always|auto|never]

               Use syntax coloring (auto activates it only if the output is a tty).

           -v  Verbose, more user friendly output.

       setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] {specfile|seriesfile}

           Initializes a source tree from an rpm spec file or a quilt series file.

           -d  Optional path prefix for the resulting source tree.

           --sourcedir

               Directory that contains the package sources. Defaults to `.'.

           -v  Verbose debug output.

           --fuzz=N

               Set the maximum fuzz factor (needs rpm 4.6 or later).

       shell [command]

           Launch a shell in a duplicate environment. After exiting the shell, any  modifications
           made in this environment are applied to the topmost patch.

           If a command is specified, it is executed instead of launching the shell.

       snapshot [-d]

           Take a snapshot of the current working state.  After taking the snapshot, the tree can
           be modified in the usual ways, including pushing and popping patches.  A diff  against
           the tree at the moment of the snapshot can be generated with `quilt diff --snapshot'.

           -d  Only remove current snapshot.

       top

           Print the name of the topmost patch on the current stack of applied patches.

       unapplied [patch]

           Print a list of patches that are not applied, or all patches that follow the specified
           patch in the series file.

       upgrade

           Upgrade the meta-data in a working tree from an old version of quilt  to  the  current
           version.  This command is only needed when the quilt meta-data format has changed, and
           the working tree still contains old-format meta-data. In that case, quilt will request
           to run `quilt upgrade'.

COMMON OPTIONS TO ALL COMMANDS

       --trace

               Runs the command in bash trace mode (-x). For internal debugging.

       --quiltrc file

               Use  the specified configuration file instead of ~/.quiltrc (or /etc/quilt.quiltrc
               if ~/.quiltrc does not exist).  See the pdf documentation for  details  about  its
               possible   contents.   The  special  value  "-"  causes  quilt  not  to  read  any
               configuration file.

       --version

               Print the version number and exit immediately.

EXIT STATUS

       The exit status is 0 if the subcommand was successfully executed, and 1 in case of  error.
       An  exit  status of 2 denotes that quilt did not do anything to complete the command; This
       happens for example when asking to push when the  whole  stack  is  already  pushed.  This
       behavior is intended to ease the scripting around quilt.

EXAMPLE OF WORKING TREE

              work/ -+- ...
              |- patches/ -+- series
              |            |- patch2.diff
              |            |- patch1.diff
              |            +- ...
              +- .pc/ -+- applied-patches
              |- patch1.diff/ -+- ...
              |- patch2.diff/ -+- ...
              +- ...

       Please refer to the pdf documentation for a full example of use.

CONFIGURATION FILE

       Upon  startup, quilt evaluates the file .quiltrc in the user's home directory, or the file
       specified with the --quiltrc option.  This file is a regular bash script. Default  options
       can  be  passed to any COMMAND by defining a QUILT_${COMMAND}_ARGS variable.  For example,
       QUILT_DIFF_ARGS="--color=auto" causes the output of quilt diff to be syntax  colored  when
       writing to a terminal.

       In addition to that, quilt recognizes the following variables:

       EDITOR

           The  program  to  run to edit files.  If it isn't redefined in the configuration file,
           $EDITOR as defined in the environment will be used.

       QUILT_DIFF_OPTS

           Additional options that quilt shall pass to GNU diff when generating patches. A useful
           setting  for  C  source  code  is "-p", which causes GNU diff to show in the resulting
           patch which function a change is in.

       QUILT_PATCH_OPTS

           Additional options that quilt shall pass to GNU  patch  when  applying  patches.   For
           example, recent versions of GNU patch support the "--reject-format=unified" option for
           generating reject files in unified diff style (older patch versions  used  "--unified-
           reject-files" for that).

       QUILT_DIFFSTAT_OPTS

           Additional options that quilt shall pass to diffstat when generating patch statistics.
           For example, "-f0" can be used for an alternative output format.  Recent  versions  of
           diffstat also support alternative rounding methods ("-r1", "-r2").

       QUILT_PATCHES

           The location of patch files, defaulting to "patches".

       QUILT_SERIES

           The  name of the series file, defaulting to "series". Unless an absolute path is used,
           the search algorithm described above applies.

       QUILT_PATCHES_PREFIX

           If set to anything, quilt will prefix patch  names  it  prints  with  their  directory
           (QUILT_PATCHES).

       QUILT_NO_DIFF_INDEX

           By  default,  quilt  prepends  an  Index:  line  to the patches it generates.  If this
           variable is set to anything, no line is prepended.  This is a shortcut to adding --no-
           index to both QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS.

       QUILT_NO_DIFF_TIMESTAMPS

           By  default,  quilt  includes  timestamps in headers when generating patches.  If this
           variable is set to anything, no timestamp will be included.  This  is  a  shortcut  to
           adding --no-timestamps to both QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS.

       QUILT_PAGER

           The  pager  quilt shall use for commands which produce paginated output. If unset, the
           values of GIT_PAGER or PAGER is used.  If none of these variables is set, "less -R" is
           used.  An empty value indicates that no pager should be used.

       QUILT_COLORS

           By  default,  quilt  uses  its predefined color set in order to be more comprehensible
           when distiguishing various types of patches, eg.  applied/unapplied, failed, etc.

           To override one or more color settings, set the  QUILT_COLORS  variable  in  following
           syntax  -  colon  (:)  separated  list  of  elements,  each  being of the form <format
           name>=<foreground color>[;<background color>]

           Format names with their respective default values are listed below, along  with  their
           usage(s).   Color  codes(values) are standard bash coloring escape codes.  See more at
           http://tldp.org/LDP/abs/html/colorizing.html#AEN20229

           diff_hdr  Used in 'quilt diff' to color the index line. Defaults to 32 (green).

           diff_add  Used in 'quilt diff' to color added lines. Defaults to 36 (azure).

           diff_mod  Used in 'quilt diff' to color modified lines. Defaults to 35 (purple).

           diff_rem  Used in 'quilt diff' to color removed lines. Defaults to 35 (purple).

           diff_hunk Used in 'quilt diff' to color hunk header. Defaults to 33 (brown/orange).

           diff_ctx  Used in 'quilt diff' to color the  text  after  end  of  hunk  header  (diff
                     --show-c-function generates this). Defaults to 35 (purple).

           diff_cctx Used  in  'quilt  diff'  to color the 15-asterisk sequence before or after a
                     hunk. Defaults to 33 (brown/orange).

           patch_fuzz
                     Used in 'quilt push' to color the patch fuzz  information.  Defaults  to  35
                     (purple).

           patch_fail
                     Used in 'quilt push' to color the fail message. Defaults to 31 (red).

           series_app
                     Used in 'quilt series' and 'quilt patches' to color the applied patch names.
                     Defaults to 32 (green).

           series_top
                     Used in 'quilt series' and 'quilt patches' to  color  the  top  patch  name.
                     Defaults to 33 (brown/orange).

           series_una
                     Used  in  'quilt series' and 'quilt patches' to color unapplied patch names.
                     Defaults to 0 (no special color).

           In addition, the clear format name is used to turn off special coloring. Its value  is
           0; it is not advised to modify it.

           The  content  of  QUILT_COLORS  superseeds default values. So the value diff_hdr=35;44
           will get you the diff headers in magenta over blue instead of the default  green  over
           unchanged   background.  For  that,  add  the  following  content  to  ~/.quiltrc  (or
           /etc/quilt.quiltrc):

           QUILT_DIFF_ARGS="--color"
           QUILT_COLORS='diff_hdr=35;44'

AUTHORS

       Quilt started as a series of scripts written by Andrew Morton  (patch-scripts).  Based  on
       Andrew's  ideas,  Andreas  Gruenbacher  completely  rewrote  the scripts, with the help of
       several other contributors (see AUTHORS file in the distribution).

       This man page was written by Martin  Quinson,  based  on  information  found  in  the  pdf
       documentation, and in the help messages of each commands.

SEE ALSO

       The  pdf  documentation,  which should be under /usr/share/doc/quilt/quilt.pdf.  Note that
       some distributors compress this file.  zxpdf(1) can be  used  to  display  compressed  pdf
       files.

       diff(1), patch(1).