SYNOPSIS
gbp~pq-rpm [ --version ] [ --help ] [ --verbose ] [ --color=[auto|on|off] ] [ --color-scheme=COLOR_SCHEME ] [ --packaging-dir=DIRECTORY ] [ --spec-file=FILEPATH ] [ --upstream-tag=TAG-FORMAT ] [ --force ] [ --[no-]patch-numbers ] drop | export | import | rebase | switch | apply
DESCRIPTION
gbp~pq-rpm helps in managing patches and development branch(es) for packages that are maintained with gbp. It designed to be used for packages that are maintained using the "orphan-packaging" model. gbp~pq-rpm has multiple subcommands, or actions, for working with the branches and patches.
gbp~pq-rpm makes it easy to do source code development on a separate development branch (patch-queue branch in Debian git-buildpackage terms). For example, if the packaging files would be stored in master the associated development branch would be development/master.
ACTIONS
- import
- Create a development (patch-queue) branch by applying all patches from the packaging branch on top of the upstream version. The patches must apply without fuzz.
- export
- Export patches from the development branch into the packaging branch. It generates patches (one-per-commit) from the development branch and updates the spec file accordingly. It doesn't automatically commit the changes though - they need to verified and committed manually.
- rebase
- Switch to the development branch and rebase it against the current upstream version (indicated in the spec file of the associated packaging branch).
- drop
- Drop (delete) the development branch associated to the current branch. For example, you're on branch foo this would drop branch development/foo.
- apply
- Add a single patch to the development branch - similar to using git-am.
- switch
- Switch between the development branch and the associated packaging 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>:<info>:<warning>:<error>'. Numerical values and color names are accepted, empty fields imply the default 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).
- --packaging-dir=DIRECTORY
- Subdirectory that contains the RPM packaging files.
- --spec-file=FILEPATH
- Relative path to the spec file to use. Special value auto causes gbp to search and guess. Other values cause the --packaging-dir option to be ignored: the directory of the spec file is used, instead.
- --upstream-tag=TAG-FORMAT
- Use this tag format when looking for tags of upstream versions, default is upstream/%(version)s.
- --force
- Import even if the development (patch-queue) branch already exists. Only valid for the import action.
- --[no-]patch-numbers
- Whether the patch files should start with a number or not.
META TAGS
When exporting patches from a patch-queue branch gbp~pq-rpm will look at the commit message for special tags it recognizes. All tags need to start at the first column and require at least one whitespace after the colon.
- Gbp-Rpm: Ignore
- Ignores the commit, no patch is generated out of it.
- Gbp-Rpm: If <expression>
- Conditional patch. Put patch inside "%if <expression>" in the spec file.
- Gbp-Rpm: IfArch<expression>
- Conditional patch. Put patch inside "%ifarch <expression>" in the spec file.
For example, the following commit message:
Fix around a problem in Fedora which is not applicable elsewhere. Gbp-Rpm: If 0%{?fedora}
Will result something like this in the spec file:
# 0001-Fix-around-a-problem-in-Fedora.patch %if 0%{?fedora} %patch0 -p1 %endif