From e77d2d0ebb9487b696835f219e4a23a558462a55 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Thu, 7 Apr 2011 12:14:04 +0200 Subject: 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 --- git/refs/remote.py | 44 ++++---------------------------------------- 1 file changed, 4 insertions(+), 40 deletions(-) (limited to 'git/refs/remote.py') 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,45 +1,14 @@ -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// - 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. @@ -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") -- cgit v1.2.3 From 3fe1a7f87d511758adf2e56803cb3610b80c5f08 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 29 Apr 2011 17:04:37 +0200 Subject: Moved rev_parse code into gitdb, this probably broke pretty much here, which is still to be fixed of course --- git/refs/remote.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'git/refs/remote.py') diff --git a/git/refs/remote.py b/git/refs/remote.py index ae6f626d..04d0d5dd 100644 --- a/git/refs/remote.py +++ b/git/refs/remote.py @@ -1,11 +1,10 @@ import os from gitdb.ref.remote import RemoteReference as GitDB_RemoteReference -from git.util import RepoAliasMixin __all__ = ["RemoteReference"] -class RemoteReference(GitDB_RemoteReference, RepoAliasMixin): +class RemoteReference(GitDB_RemoteReference): """Represents a reference pointing to a remote head.""" __slots__ = tuple() -- cgit v1.2.3 From 4177eefd7bdaea96a529b00ba9cf751924ede202 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Thu, 5 May 2011 19:43:22 +0200 Subject: Added all code from gitdb to gitpython. Next is to make it generally work. Then the tests will need some work --- git/refs/remote.py | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'git/refs/remote.py') diff --git a/git/refs/remote.py b/git/refs/remote.py index 04d0d5dd..bfe80e62 100644 --- a/git/refs/remote.py +++ b/git/refs/remote.py @@ -1,5 +1,9 @@ import os -from gitdb.ref.remote import RemoteReference as GitDB_RemoteReference +from headref import Head +from gitdb.util import ( + join, + join_path + ) __all__ = ["RemoteReference"] @@ -8,6 +12,41 @@ class RemoteReference(GitDB_RemoteReference): """Represents a reference pointing to a remote head.""" __slots__ = tuple() + _common_path_default = "refs/remotes" + + + @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// + 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 create(cls, *args, **kwargs): + """Used to disable this method""" + raise TypeError("Cannot explicitly create remote references") + @classmethod def delete(cls, repo, *refs, **kwargs): """Delete the given remote references. -- cgit v1.2.3 From acf5e6ea64a2f24117f1d419c208ed1c38c43690 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 6 May 2011 15:03:14 +0200 Subject: replaced all gitdb strings with git --- git/refs/remote.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'git/refs/remote.py') diff --git a/git/refs/remote.py b/git/refs/remote.py index bfe80e62..b883b00b 100644 --- a/git/refs/remote.py +++ b/git/refs/remote.py @@ -1,6 +1,6 @@ import os from headref import Head -from gitdb.util import ( +from git.util import ( join, join_path ) -- cgit v1.2.3 From 7ae36c3e019a5cc16924d1b6007774bfb625036f Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 6 May 2011 18:53:59 +0200 Subject: Started to fix imports - tests still have no chance to work as database changed drastically. Now the actual work begins --- git/refs/remote.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'git/refs/remote.py') diff --git a/git/refs/remote.py b/git/refs/remote.py index b883b00b..f2dc72ee 100644 --- a/git/refs/remote.py +++ b/git/refs/remote.py @@ -8,7 +8,7 @@ from git.util import ( __all__ = ["RemoteReference"] -class RemoteReference(GitDB_RemoteReference): +class RemoteReference(Head): """Represents a reference pointing to a remote head.""" __slots__ = tuple() -- cgit v1.2.3