# `gbp.deb.rollbackgit.RollbackDebianGitRepository(DebianGitRepository)` class documentation

Part of `gbp.deb.rollbackgit` (View In Hierarchy)

Like a DebianGitRepository but can also perform rollbacks and knows about some of the inner workings upstream vcs_tag, …

Method | __init__ | No summary
Instance Variable | rollbacks | Undocumented
Instance Variable | rollback_errors | Undocumented
Method | has_rollbacks | Undocumented
Method | rrr | Remember ref for rollback
Method | rrr_branch | Undocumented
Method | rrr_tag | Undocumented
Method | rrr_merge | Undocumented
Method | rollback | Perform a complete rollback
Method | create_tag | Create a new tag.
Method | commit_dir | Replace the current tip of branch branch with the contents from unpack_dir
Method | create_branch | Create a new branch
Method | merge | Merge changes from the named commit into the current branch

Inherited from DebianGitRepository:

Instance Variable | pristine_tar | Undocumented
Method | tree_drop_dirs | Drop the given top level dirs from the given git tree returning a new tree object.
Method | tree_get_dir | Get the SHA1 of directory in a given tree
Method | find_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.
Method | debian_version_from_upstream | Build the Debian version that a package based on upstream commit commit would carry taking into account a possible epoch.
Class Method | version_to_tag | Generate a tag from a given format and a version
Class Method | tag_to_version | Extract the version from a tag
Method | pristine_tar_branch | The name of the pristine-tar branch, whether it already exists or not.
Method | has_pristine_tar_branch | Whether the repo has a pristine-tar branch.
Method | create_pristine_tar_commits | Create pristine-tar commits for a package with main tarball and (optional) component tarballs based on upstream_tree
Method | get_pristine_tar_commit | Get the pristine-tar commit for the given source package's latest version.
Method | create_upstream_tarball_via_pristine_tar | Undocumented
Method | create_upstream_tarball_via_git_archive | Create a compressed orig tarball in output_dir using git archive
Method | vcs_tag_parent | If linking to the upstream VCS get the commit id
Static Method | _build_legacy_tag | Legacy tags (prior to 0.5.5) dropped epochs and didn't honor the '~'
Class Method | _mangle_version | Basic version mangling to replce single characters
Class Method | _unmangle_format | Reverse of _mangle_version for format
Class Method | _unmangle_version | Reverse of _mangle_version for version
Static Method | _sanitize_version | sanitize a version so git accepts it as a tag
Static Method | _unsanitize_version | Reverse _sanitize_version

Inherited from PkgGitRepository (via DebianGitRepository):

Static Method | sanitize_prefix | Make sure git-archive prefix ends with a slash
Method | archive_comp | Create a compressed source tree archive with the given options
Method | _archive_comp_submodules | Create a compressed source tree archive with submodules.
Method | _archive_comp_single | Create a compressed source tree archive without submodules

Inherited from GitRepository (via DebianGitRepository, PkgGitRepository):

Class Method | git_inout | As _git_inout but can be used without an instance
Method | path | The absolute path to the repository
Method | git_dir | The absolute path to git's metadata
Method | bare | Whether this is a bare repository
Method | tags | List of all tags in the repository
Method | branch | The currently checked out branch
Method | head | SHA1 of the current HEAD
Method | rename_branch | Rename branch
Method | delete_branch | Delete branch branch
Method | get_branch | On what branch is the current working copy
Method | has_branch | Check if the repository has branch named branch.
Method | set_branch | Switch to branch branch
Method | get_merge_branch | Get the branch we'd merge from
Method | get_merge_base | Get the common ancestor between two commits
Method | abort_merge | Abort a merge
Method | is_in_merge | Undocumented
Method | is_fast_forward | Check if an update from from_branch to to_branch would be a fast forward or if the branch is up to date already.
Method | get_local_branches | Get a list of local branches
Method | get_remote_branches | Get a list of remote branches
Method | update_ref | Update ref ref to commit new if ref currently points to old
Method | branch_contains | Check if branch branch contains commit commit
Method | set_upstream_branch | Set upstream branches for local branch
Method | get_upstream_branch | Get upstream branch for the local branch
Method | delete_tag | Delete a tag named tag
Method | move_tag | Undocumented
Method | has_tag | Check if the repository has a tag named tag.
Method | describe | Describe commit, relative to the latest tag reachable from it.
Method | find_tag | Find the closest tag to a given commit
Method | find_branch_tag | Find the closest tag on a certain branch to a given commit
Method | get_tags | List tags
Method | verify_tag | Verify a signed tag
Method | force_head | Force HEAD to a specific commit
Method | is_clean | Does the repository contain any uncommitted modifications?
Method | clean | Remove untracked files from the working tree.
Method | status | Check status of repository.
Method | is_empty | Is the repository empty?
Method | rev_parse | Find the SHA1 of a given name
Static Method | strip_sha1 | Strip a given sha1 and check if the resulting hash has the expected length.
Method | checkout | Checkout treeish
Method | has_treeish | Check if the repository has the treeish object treeish.
Method | write_tree | Create a tree object from the current index
Method | make_tree | Create a tree based on contents.
Method | get_obj_type | Get type of a git repository object
Method | list_tree | Get a trees content. It returns a list of objects that match the 'ls-tree' output: [mode, type, sha1, path].
Method | get_config | Gets the config value associated with name
Method | set_config | Set a git config value in this repository
Method | set_user_name | Sets the full name to use for git commits.
Method | set_user_email | Sets the email address to use for git commits.
Method | get_author_info | Determine a sane values for author name and author email from git's config and environment variables.
Method | get_remotes | Get a list of remote repositories
Method | get_remote_repos | Get all remote repositories
Method | has_remote_repo | Do we know about a remote named name?
Method | add_remote_repo | Add a tracked remote repository
Method | remove_remote_repo | Undocumented
Method | fetch | Download objects and refs from another repository.
Method | pull | Fetch and merge from another repository
Method | push | Push changes to the remote repo
Method | push_tag | Push a tag to the remote repo
Method | add_files | Add files to a the repository
Method | remove_files | Remove files from the repository
Method | list_files | List files in index and working tree
Method | write_file | Hash a single file and write it into the object database
Method | rename_file | Rename file, directory, or symlink
Method | commit_staged | Commit currently staged files to the repository
Method | commit_all | No summary
Method | commit_files | Commit the given files to the repository
Method | commit_tree | Commit a tree with commit msg msg and parents parents
Method | get_commits | Get commits from since to until touching paths
Method | show | Show a git object
Method | grep_log | Get commmits matching regex
Method | get_subject | Gets the subject of a commit.
Method | get_commit_info | Look up data of a specific commit-ish. Dereferences given commit-ish to the commit it points to.
Method | format_patches | Output the commits between start and end as patches in output_dir.
Method | apply_patch | Apply a patch using git apply
Method | diff | Diff two git repository objects
Method | diff_status | Get file-status of two git repository objects
Method | archive | Create an archive from a treeish
Method | collect_garbage | Cleanup unnecessary files and optimize the local repository
Method | has_submodules | Does the repo have any submodules?
Method | add_submodule | Add a submodule
Method | update_submodules | Update all submodules
Method | get_submodules | List the submodules of treeish
Class Method | create | Create a repository at path
Class Method | clone | Clone a git repository at remote to path.
Instance Variable | _path | The path to the working tree
Instance Variable | _bare | Whether this is a bare repository
Method | _check_bare | Check whether this is a bare repository
Method | _get_git_dir | Undocumented
Instance Variable | _git_dir | Undocumented
Method | _check_repo | Undocumented
Static Method | __build_env | Prepare environment for subprocess calls
Method | _git_getoutput | Run a git command and return the output
Method | _git_inout | Run a git command with input and return output
Method | _git_command | Execute git command with arguments args and environment env at path.
Method | _cmd_has_feature | Check if the git command has certain feature enabled.
Method | _get_branches | Get a list of branches
Method | _status | Undocumented
Method | _commit | Undocumented

def __init__(self, *args, **kwargs):
overrides gbp.deb.git.DebianGitRepository.__init__

Parameters | path | path to git repo (or subdir) (type: `str`)
| toplevel | whether path points to the toplevel dir of git repository (type: `bool`)

rollbacks =
Undocumented
(type: `List`)
rollback_errors =
Undocumented
(type: `List`)
def has_rollbacks(self):
Undocumented
def rrr(self, refname, action, reftype):

Remember ref for rollback

Parameters | refname | ref to roll back
| action | the rollback action (delete, reset, ...)
| reftype | the reference type (tag, branch, ...)

def rrr_branch(self, branchname, action="""reset-or-delete"""):
Undocumented
def rrr_tag(self, tagname, action="""delete"""):
Undocumented
def rrr_merge(self, commit, action="""abortmerge"""):
Undocumented
def rollback(self):

Perform a complete rollback

Try to roll back as much as possible and remember what failed.

def create_tag(self, *args, **kwargs):
overrides gbp.git.repository.GitRepository.create_tag

Create a new tag.

Parameters | name | the tag's name (type: `str`)
| msg | The tag message. (type: `str`)
| commit | the commit or object to create the tag at, default is HEAD (type: `str`)
| sign | Whether to sing the tag (type: `bool`)
| keyid | the GPG keyid used to sign the tag (type: `str`)

def commit_dir(self, *args, **kwargs):
overrides gbp.git.repository.GitRepository.commit_dir

Replace the current tip of branch branch with the contents from unpack_dir

Parameters | unpack_dir | content to add (type: `str`)
| msg | commit message to use (type: `str`)
| branch | branch to add the contents of unpack_dir to (type: `str`)
| other_parents | additional parents of this commit (type: `list` of `str`)
| author | author information to use for commit (type: `dict` with keys name, email, date)
| committer | committer information to use for commit (type: `dict` with keys name, email, date or `GitModifier`)
| create_missing_branch | create branch as detached branch if it doesn't already exist. (type: `bool`)

def create_branch(self, *args, **kwargs):
overrides gbp.git.repository.GitRepository.create_branch

Create a new branch

Parameters | branch | the branch's name
| rev | where to start the branch from
| force | reset branch HEAD to start point, if it already exists If rev is None the branch starts from the current HEAD.

def merge(self, *args, **kwargs):
overrides gbp.git.repository.GitRepository.merge

Merge changes from the named commit into the current branch

Parameters | commit | the commit to merge from (usually a branch name or tag) (type: `str`)
| verbose | whether to print a summary after the merge (type: `bool`)
| edit | whether to invoke an editor to edit the merge message (type: `bool`)