Package gbp :: Package deb :: Module git :: Class DebianGitRepository

[hide private]
[frames] | no frames]

# Class DebianGitRepository

                      object --+
                               |
    git.repository.GitRepository --+
                                   |
                                  DebianGitRepository

A git repository that holds the source of a Debian package

Instance Methods | [hide private]

__init__(self, path) x.__init__(...) initializes x; see help(type(x)) for signature |

`str`

find_version(self, format, version) Check if a certain version is stored in this repo and return the SHA1 of the related commit. |

debian_version_from_upstream(self, upstream_tag_format, commit=`'``HEAD``'`, epoch=None) Build the Debian version that a package based on upstream commit commit would carry taking into account a possible epoch. |

`Bool`

has_pristine_tar_branch(self) Wheter the repo has a pristine-tar branch. |

Inherited from `git.repository.GitRepository`: `archive`, `clean`, `collect_garbage`, `force_head`, `get_author_info`, `get_config`, `is_clean`, `is_empty`, `rev_parse`

Inherited from `git.repository.GitRepository` (private): `_check_bare`, `_cmd_has_feature`, `_git_command`, `_git_getoutput`, `_git_inout`, `_status`

Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__sizeof__`, `__str__`, `__subclasshook__`

Branches and Merging

Inherited from `git.repository.GitRepository`: `branch_contains`, `create_branch`, `delete_branch`, `get_branch`, `get_local_branches`, `get_merge_base`, `get_merge_branch`, `get_remote_branches`, `get_upstream_branch`, `has_branch`, `is_fast_forward`, `merge`, `rename_branch`, `set_branch`, `set_upstream_branch`, `update_ref`

Inherited from `git.repository.GitRepository` (private): `_get_branches`

Tags
Inherited from `git.repository.GitRepository`: `create_tag`, `delete_tag`, `describe`, `find_tag`, `get_tags`, `has_tag`, `move_tag`, `verify_tag`
Trees
Inherited from `git.repository.GitRepository`: `checkout`, `get_obj_type`, `has_treeish`, `list_tree`, `make_tree`, `write_tree`
Remote Repositories
Inherited from `git.repository.GitRepository`: `add_remote_repo`, `fetch`, `get_remote_repos`, `get_remotes`, `has_remote_repo`, `pull`, `push`, `push_tag`, `remove_remote_repo`
Files
Inherited from `git.repository.GitRepository`: `add_files`, `list_files`, `remove_files`, `write_file`
Comitting
Inherited from `git.repository.GitRepository`: `commit_all`, `commit_dir`, `commit_files`, `commit_staged`, `commit_tree` Inherited from `git.repository.GitRepository` (private): `_commit`
Commit Information
Inherited from `git.repository.GitRepository`: `get_commit_info`, `get_commits`, `get_subject`, `grep_log`, `show`
Patches
Inherited from `git.repository.GitRepository`: `apply_patch`, `diff`, `format_patches`
Submodules
Inherited from `git.repository.GitRepository`: `add_submodule`, `get_submodules`, `has_submodules`, `update_submodules`

Class Methods | [hide private]

Repository Creation
Inherited from `git.repository.GitRepository`: `clone`, `create`

Static Methods | [hide private]

_build_legacy_tag(format, version) Legacy tags (prior to 0.5.5) dropped epochs and didn't honor the '~' |

version_to_tag(format, version) Generate a tag from a given format and a version |

_sanitize_version(version) sanitize a version so git accepts it as a tag |

tag_to_version(tag, format) Extract the version from a tag |

Inherited from `git.repository.GitRepository`: `strip_sha1`

Instance Variables | [hide private]

Inherited from `git.repository.GitRepository` (private): `_bare`, `_path`

Properties | [hide private]

| pristine_tar_branch The name of the pristine-tar branch, whether it already exists or not.
Inherited from `git.repository.GitRepository`: `bare`, `branch`, `git_dir`, `head`, `path`, `tags` Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, path)
(Constructor)

x.__init__(...) initializes x; see help(type(x)) for signature

Raises:
  - `GitRepositoryError` - on git errors GitRepositoryError is raised by all methods.
Overrides: object.__init__
  (inherited documentation)

### find_version(self, format, version)

Check if a certain version is stored in this repo and return the SHA1 of the related commit. That is, an annotated tag is dereferenced to the commit object it points to.

For legacy tags don't only check the tag itself but also the commit message, since the former wasn't injective until release 0.5.5. You only need to use this function if you also need to check for legacy tags.

Parameters:
  - `format` (`str`) - tag pattern
  - `version` (`str`) - debian version number
Returns: `str`
  sha1 of the commit the tag references to

### debian_version_from_upstream(self, upstream_tag_format, commit=`'``HEAD``'`, epoch=None)

Build the Debian version that a package based on upstream commit commit would carry taking into account a possible epoch.

Parameters:
  - `upstream_tag_format` (`str`) - the tag format on the upstream branch
  - `commit` - the commit to search for the latest upstream version
  - `epoch` - an epoch to use
Returns:
  a new debian version
Raises:
  - `GitRepositoryError` - if no upstream tag was found

### _build_legacy_tag(format, version)
Static Method

Legacy tags (prior to 0.5.5) dropped epochs and didn't honor the '~'

    >>> DebianGitRepository._build_legacy_tag('upstream/%(version)s', '1:2.0~3')
    'upstream/2.0.3'

### version_to_tag(format, version)
Static Method

Generate a tag from a given format and a version

    >>> DebianGitRepository.version_to_tag("debian/%(version)s", "0:0~0")
    'debian/0%0_0'

### _sanitize_version(version)
Static Method

sanitize a version so git accepts it as a tag

    >>> DebianGitRepository._sanitize_version("0.0.0")
    '0.0.0'
    >>> DebianGitRepository._sanitize_version("0.0~0")
    '0.0_0'
    >>> DebianGitRepository._sanitize_version("0:0.0")
    '0%0.0'
    >>> DebianGitRepository._sanitize_version("0%0~0")
    '0%0_0'

### tag_to_version(tag, format)
Static Method

Extract the version from a tag

    >>> DebianGitRepository.tag_to_version("upstream/1%2_3-4", "upstream/%(version)s")
    '1:2~3-4'
    >>> DebianGitRepository.tag_to_version("foo/2.3.4", "foo/%(version)s")
    '2.3.4'
    >>> DebianGitRepository.tag_to_version("foo/2.3.4", "upstream/%(version)s")

### has_pristine_tar_branch(self)

Wheter the repo has a pristine-tar branch.

Returns: `Bool`
  `True` if the repo has pristine-tar commits already, `False` otherwise

Property Details | [hide private]

### pristine_tar_branch

The name of the pristine-tar branch, whether it already exists or not.

Get Method:
  unreachable.pristine_tar_branch(self) - The name of the pristine-tar branch, whether it already exists or not.