diff options
Diffstat (limited to 'git/refs/remote.py')
-rw-r--r-- | git/refs/remote.py | 44 |
1 files changed, 4 insertions, 40 deletions
diff --git a/git/refs/remote.py b/git/refs/remote.py index b7b07d4b..ae6f626d 100644 --- a/git/refs/remote.py +++ b/git/refs/remote.py @@ -1,46 +1,15 @@ -from head import Head -from git.util import join_path -from gitdb.util import join - import os - +from gitdb.ref.remote import RemoteReference as GitDB_RemoteReference +from git.util import RepoAliasMixin __all__ = ["RemoteReference"] -class RemoteReference(Head): +class RemoteReference(GitDB_RemoteReference, RepoAliasMixin): """Represents a reference pointing to a remote head.""" - _common_path_default = "refs/remotes" - + __slots__ = tuple() @classmethod - def iter_items(cls, repo, common_path = None, remote=None): - """Iterate remote references, and if given, constrain them to the given remote""" - common_path = common_path or cls._common_path_default - if remote is not None: - common_path = join_path(common_path, str(remote)) - # END handle remote constraint - return super(RemoteReference, cls).iter_items(repo, common_path) - - @property - def remote_name(self): - """ - :return: - Name of the remote we are a reference of, such as 'origin' for a reference - named 'origin/master'""" - tokens = self.path.split('/') - # /refs/remotes/<remote name>/<branch_name> - return tokens[2] - - @property - def remote_head(self): - """:return: Name of the remote head itself, i.e. master. - :note: The returned name is usually not qualified enough to uniquely identify - a branch""" - tokens = self.path.split('/') - return '/'.join(tokens[3:]) - - @classmethod def delete(cls, repo, *refs, **kwargs): """Delete the given remote references. :note: @@ -56,8 +25,3 @@ class RemoteReference(Head): except OSError: pass # END for each ref - - @classmethod - def create(cls, *args, **kwargs): - """Used to disable this method""" - raise TypeError("Cannot explicitly create remote references") |