Provided by: git-buildpackage_0.9.38_all bug

NAME

       gbp-pq - Manage debian/patches in Git without any need for GNU Quilt

SYNOPSIS

       gbp pq [--version] [--help] [--verbose] [--color=[auto|on|off]] [--color-scheme= COLOR_SCHEME]
              [--[no-]patch-numbers] [--patch-num-format= format] [--[no-]renumber] [--topic= topic]
              [--time-machine= num] [--[no-]drop] [--abbrev= num] [--force] [--commit]
              [--meta-closes=bug-close-tags] [--meta-closes-bugnum=bug-number-format] [--pq-from= [DEBIAN|TAG]]
              [--upstream-tag= tag-format] [--[no-]ignore-new] drop | export | import | rebase | switch

DESCRIPTION

       gbp pq  helps  one to manage quilt patches in Debian packages that are maintained with gbp. This is espe‐
       cially useful with packages using the 3.0 (quilt) source format. With gbp pq, you can maintain the  quilt
       patches  that  should  be applied to a package on a separate branch called patch-queue branch. So if your
       Debian package lives on master, the associated patch-queue branch will be called patch-queue/master.

       See ⟨https://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.patches.html⟩ for  example  work‐
       flows.

ACTIONS

       import Create a patch queue branch from quilt patches in debian/patches/ that are listed in debian/patch‐
              es/series. The patches must apply without fuzz.

       export Export  the  patches on the patch-queue branch associated to the current branch into a quilt patch
              series in debian/patches/ and update the series file.

       rebase Switch to the patch-queue branch associated to the current branch and rebase it against  the  cur‐
              rent branch.

       drop   Drop  (delete)  the patch queue associated to the current branch. So if you're on branch foo, this
              would drop branch patch-queue/foo.

       apply  Add a single patch to the patch-queue similar to using git-am. Use --topic if you want  the  patch
              to  appear  in  a separate subdir when exporting the patch queue using export. This can be used to
              separate upstream patches from Debian specific patches.

       switch Switch to the patch-queue branch if on the base branch and switch to base branch if on patch-queue
              branch.

OPTIONS

       --version
              Print version of the program, i.e. version of the git-buildpackage suite

       -v, --verbose
              Verbose execution

       -h, --help
              Print help and exit

       --color=[auto|on|off]
              Whether to use colored output.

       --color-scheme=COLOR_SCHEME
              Colors to use in output (when color is enabled). The  format  for  COLOR_SCHEME  is  '<debug>:<in‐
              fo>:<warning>:<error>'.  Numerical values and color names are accepted, empty fields imply the de‐
              fault  color.  For example, --git-color-scheme='cyan:34::' would show debug messages in cyan, info
              messages in blue and other messages in default (i.e. warning and error messages in red).

       --[no-]patch-numbers
              Whether or not the patch files should be prefixed with a number.  The default is to export patches
              with patch numbers. Note, however, that this normally affects patches whose names are automatical‐
              ly generated, and has no effect on exporting patches which have a Gbp[-Pq]: Name  tag,  since  the
              name specified is preserved unless the --renumber option is used.

       --patch-num-format=format
              The format specifier for patch number prefixes. The default format is '%04d-'.

       --[no-]renumber
              Whether  or  not  to renumber patches exported from the patch queue, instead of preserving numbers
              specified in Gbp-Pq: Name tags. The default is not to renumber patches. Useful when  patches  need
              to  be  renamed for the sake of uniformity. For example, using --renumber with --no-patch-num will
              strip all numeric prefixes from exported patches.

       --topic=topic
              Topic to use when importing a single patch

       --time-machine=NUM
              When importing a patch queue fails, go back commit-by-commit on the current branch to check if the
              patch-queue applies there. Do this at most NUM times.  This  can  be  useful  if  the  patch-queue
              doesn't apply to the current branch HEAD anymore, e.g.  after importing a new upstream version.

       --[no-]drop
              Whether to automatically drop (delete) the patch queue branch after a successful export

       --abbrev=NUM
              When  exporting  a  patch queue abbreviate commit, instead of showing the full 40-byte hexadecimal
              object name in header lines, show only a partial prefix of length NUM. This is useful when  exist‐
              ing patches were not generated by gbp pq.

       --force
              In  case of import, import even if the patch-queue branch already exists and overwrite its content
              with debian/patches.

       --commit
              In case of export, commit debian/patchesthe changes to Git after exporting the patches.

       --meta-closes=bug-close-tags
              What meta tags to look for to generate a commit message when using export --commit.   The  default
              is 'Closes|LP' to support Debian and Launchpad.

       --meta-closes-bugnum=bug-number-format
              What regular expression should be used to parse out the bug number when using export --commit. The
              default is '(?:bug|issue)?\#?\s?\d+'.  See gbp-dch(1) for details.

       --pq-from=[DEBIAN|TAG]
              How to find the starting point for the patch queue base. The options are DEBIAN, that will use the
              Debian branch as the base for the patch queue branch, and TAG, that will use the corresponding up‐
              stream tag as a base for the patch queue branch.

              This  is  only  needed if your upstream branch is not merged in the Debian branch.  The default is
              DEBIAN.

       --upstream-tag=TAG-FORMAT
              Use this tag format when looking for tags of upstream versions, default is upstream/%(version)s.

       --[no-]ignore-new
              Don't abort if there are uncommitted changes in the source tree  or  the  current  branch  doesn't
              match the DEBIAN-BRANCH.

TAGS

       When  exporting  patches from a patch-queue branch, gbp pq will look at the patch header for special tags
       it recognizes. All tags need to start at the first column and require at least one whitespace  after  the
       colon.

       Gbp[-Pq]: Ignore
              Ignores the commit, no patch is generated out of it.

       Gbp[-Pq]: Name name
              The name to use for the patch when running

              gbp pq export

              If unset, it will be formatted like git am would format it.

       Gbp[-Pq]: Topic topic
              Moves the patch into a subdir called topic when running

              gbp pq export

              This allows for some structure below debian/patches.

       Gbp-Pq-Topic: topic
              Deprecated: use Gbp[-Pq]: Topic topic instead.

EXAMPLES

       Create  a temporary branches-applied branch from files currently in debian/patches/*, and switch to it so
       that one can easily modify the files directly and manage the metadata as git  commits  modify  the  files
       with git commands (thus avoiding quilt) and manage the metadata as git commits:

             gbp pq switch --force

       Re-create  the contents of debian/patches/* using the commits on the patches-applied branch, commit it on
       the actual Debian packaging branch, and delete the temporary patches-applied branch::

             gbp pq export --drop --commit

SEE ALSO

       gbp-buildpackage(1), dpkg-source(1), quilt(1), gbp.conf(5)

AUTHOR

       Guido Günther <agx@sigxcpu.org>

                                                  10 April 2025                                        gbp-pq(1)