rez.release_vcs#
- rez.release_vcs.get_release_vcs_types()#
Returns the available VCS implementations - git, hg etc.
- rez.release_vcs.create_release_vcs(path, vcs_name=None)#
Return a new release VCS that can release from this source path.
- class rez.release_vcs.ReleaseVCS#
Bases:
object
A version control system (VCS) used to release Rez packages.
- __init__(pkg_root, vcs_root=None)#
- classmethod name()#
Return the name of the VCS type, eg ‘git’.
- classmethod find_executable(name)#
- classmethod is_valid_root(path)#
Return True if the given path is a valid root directory for this version control system.
Note that this is different than whether the path is under the control of this type of vcs; to answer that question, use find_vcs_root
- classmethod search_parents_for_root()#
Return True if this vcs type should check parent directories to find the root directory
- classmethod find_vcs_root(path)#
Try to find a version control root directory of this type for the given path.
If successful, returns (vcs_root, levels_up), where vcs_root is the path to the version control root directory it found, and levels_up is an integer indicating how many parent directories it had to search through to find it, where 0 means it was found in the indicated path, 1 means it was found in that path’s parent, etc. If not sucessful, returns None
- validate_repostate()#
Ensure that the VCS working copy is up-to-date.
- get_current_revision()#
Get the current revision, this can be any type (str, dict etc) appropriate to your VCS implementation.
Note
You must ensure that a revision contains enough information to clone/export/checkout the repo elsewhere - otherwise you will not be able to implement export.
- get_changelog(previous_revision=None, max_revisions=None)#
Get the changelog text since the given revision.
If previous_revision is not an ancestor (for example, the last release was from a different branch) you should still return a meaningful changelog - perhaps include a warning, and give changelog back to the last common ancestor.
- Parameters:
previous_revision – The revision to give the changelog since. If None, give the entire changelog.
- Returns:
Changelog, as a string.
- tag_exists(tag_name)#
Test if a tag exists in the repo.
- create_release_tag(tag_name, message=None)#
Create a tag in the repo.
Create a tag in the repository representing the release of the given version.
- classmethod export(revision, path)#
Export the repository to the given path at the given revision.
Note
The directory at path must not exist, but the parent directory must exist.