summaryrefslogtreecommitdiff
path: root/git/refs/remote.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2011-04-07 12:14:04 +0200
committerSebastian Thiel <byronimo@gmail.com>2011-04-07 12:14:04 +0200
commite77d2d0ebb9487b696835f219e4a23a558462a55 (patch)
tree05e6d51374e2362b5e44783af631b316679b53c7 /git/refs/remote.py
parent8af941618a851d190668602be3b6bede1544f1dc (diff)
downloadgitpython-e77d2d0ebb9487b696835f219e4a23a558462a55.tar.gz
Removed all parts of the reference implementation which doesn't require the git command. everything else was moved to GitDB. None of the tests is yet expected to run, although git-python should have less trouble getting the tests back up running than GitDB. plenty of code needs to be de-duplicated though in case of the tests, which will be some work
Diffstat (limited to 'git/refs/remote.py')
-rw-r--r--git/refs/remote.py44
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")