aboutsummaryrefslogtreecommitdiff
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
GitPython-e77d2d0ebb9487b696835f219e4a23a558462a55.zip
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")