Package gbp :: Package scripts :: Package common :: Module pq
[hide private]
[frames] | no frames]

Module pq

Common functionality for Debian and RPM patchqueue management

Functions [hide private]
 
pq_branch_match(branch, pq_fmt_str)
Match branch name with pq branch name pattern
 
is_pq_branch(branch, options)
is branch a patch-queue branch?
 
pq_branch_name(branch, options, extra_keys=None)
get the patch queue branch corresponding to branch
 
pq_branch_base(pq_branch, options)
Get the branch corresponding to the given patch queue branch.
 
parse_gbp_commands(info, cmd_tag, noarg_cmds, arg_cmds)
Parse gbp commands from commit message
 
patch_path_filter(file_status, exclude_regex=None)
Create patch include paths, i.e.
 
write_patch_file(filename, commit_info, diff)
Write patch file
 
format_patch(outdir, repo, commit_info, series, numbered=True, path_exclude_regex=None, topic='')
Create patch of a single commit
 
format_diff(outdir, filename, repo, start, end, path_exclude_regex=None)
Create a patch of diff between two repository objects
 
get_author(repo)
Determine author name and email
 
get_maintainer_from_control(repo)
Get the maintainer from the control file
 
switch_to_pq_branch(repo, branch, options, name_keys=None)
Switch to patch-queue branch if not already there, create it if it doesn't exist yet
 
apply_single_patch(repo, branch, patch, fallback_author, options)
 
apply_and_commit_patch(repo, patch, fallback_author, topic=None)
apply a single patch 'patch', add topic 'topic' and commit it
 
drop_pq(repo, branch, options, name_keys=None)
Variables [hide private]
  DEFAULT_PQ_BRANCH_NAME = 'patch-queue/%(branch)s'
  __package__ = 'gbp.scripts.common'
Function Details [hide private]

pq_branch_match(branch, pq_fmt_str)

 

Match branch name with pq branch name pattern

>>> pq_branch_match('patch-queue/foo', 'patch-queue/%(br)s').groupdict()
{'br': 'foo'}
>>> pq_branch_match('pq/foo/bar', 'pq/%(br)s/baz')
>>> pq_branch_match('pq/foo/bar', 'pq/%(br)s/bar').groupdict()
{'br': 'foo'}
>>> pq_branch_match('foo/bar/1.0/pq', 'foo/%(br)s/%(ver)s/pq').groupdict()
{'ver': '1.0', 'br': 'bar'}

is_pq_branch(branch, options)

 

is branch a patch-queue branch?

>>> from optparse import OptionParser
>>> (opts, args) = OptionParser().parse_args([])
>>> is_pq_branch("foo", opts)
False
>>> is_pq_branch("patch-queue/foo", opts)
True
>>> opts.pq_branch = "%(branch)s/development"
>>> is_pq_branch("foo/development/bar", opts)
False
>>> is_pq_branch("bar/foo/development", opts)
True
>>> opts.pq_branch = "development"
>>> is_pq_branch("development", opts)
True
>>> opts.pq_branch = "my/%(branch)s/pq"
>>> is_pq_branch("my/foo/pqb", opts)
False
>>> is_pq_branch("my/foo/pq", opts)
True
>>> opts.pq_branch = "my/%(branch)s/%(version)s"
>>> is_pq_branch("my/foo", opts)
False
>>> is_pq_branch("my/foo/1.0", opts)
True

pq_branch_name(branch, options, extra_keys=None)

 

get the patch queue branch corresponding to branch

>>> from optparse import OptionParser
>>> (opts, args) = OptionParser().parse_args([])
>>> pq_branch_name("patch-queue/master", opts)
>>> pq_branch_name("foo", opts)
'patch-queue/foo'
>>> opts.pq_branch = "%(branch)s/development"
>>> pq_branch_name("foo", opts)
'foo/development'
>>> opts.pq_branch = "development"
>>> pq_branch_name("foo", opts)
'development'
>>> opts.pq_branch = "pq/%(branch)s/%(ver)s"
>>> pq_branch_name("foo", opts, {'ver': '1.0'})
'pq/foo/1.0'

pq_branch_base(pq_branch, options)

 

Get the branch corresponding to the given patch queue branch. Returns the packaging/debian branch if pq format string doesn't contain '%(branch)s' key.

>>> from optparse import OptionParser
>>> (opts, args) = OptionParser().parse_args([])
>>> opts.packaging_branch = "packaging"
>>> pq_branch_base("patch-queue/master", opts)
'master'
>>> pq_branch_base("foo", opts)
>>> opts.pq_branch = "my/%(branch)s/development"
>>> pq_branch_base("foo/development", opts)
>>> pq_branch_base("my/foo/development/bar", opts)
>>> pq_branch_base("my/foo/development", opts)
'foo'
>>> opts.pq_branch = "development"
>>> pq_branch_base("foo/development", opts)
>>> pq_branch_base("development", opts)
'packaging'

patch_path_filter(file_status, exclude_regex=None)

 

Create patch include paths, i.e. a "negation" of the exclude paths.