summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/git/remote.py11
-rw-r--r--test/git/test_remote.py6
2 files changed, 5 insertions, 12 deletions
diff --git a/lib/git/remote.py b/lib/git/remote.py
index ace5128a..562a5082 100644
--- a/lib/git/remote.py
+++ b/lib/git/remote.py
@@ -238,16 +238,9 @@ class Remote(LazyMixin, Iterable):
Returns
Iterator yielding Remote objects of the given repository
"""
- # parse them using refs, as their query can be faster as it is
- # purely based on the file system
seen_remotes = set()
- for ref in RemoteReference.iter_items(repo):
- remote_name = ref.remote_name
- if remote_name in seen_remotes:
- continue
- # END if remote done already
- seen_remotes.add(remote_name)
- yield Remote(repo, remote_name)
+ for name in repo.git.remote().splitlines():
+ yield Remote(repo, name)
# END for each ref
@property
diff --git a/test/git/test_remote.py b/test/git/test_remote.py
index 6f43e163..152ef5ab 100644
--- a/test/git/test_remote.py
+++ b/test/git/test_remote.py
@@ -122,8 +122,6 @@ class TestRemote(TestBase):
res = fetch_and_test(remote, tags=True)
self.failUnlessRaises(IndexError, get_info, res, remote, str(rtag))
- self.fail("Test fetch with true remote side - plenty of possible output is ommitted right now")
-
def _test_push_and_pull(self,remote, rw_repo, remote_repo):
# push our changes
lhead = rw_repo.head
@@ -151,9 +149,10 @@ class TestRemote(TestBase):
remote.pull('master')
@with_rw_and_rw_remote_repo('0.1.6')
- def test_base(self, rw_repo, remote_repo):
+ def test_base(self, rw_repo, remote_repo, damon_handle):
num_remotes = 0
remote_set = set()
+
for remote in rw_repo.remotes:
num_remotes += 1
assert remote == remote
@@ -221,6 +220,7 @@ class TestRemote(TestBase):
arg_list = (new_name, "git@server:hello.git")
remote = Remote.create(bare_rw_repo, *arg_list )
assert remote.name == "test_new_one"
+ assert remote in bare_rw_repo.remotes
# create same one again
self.failUnlessRaises(GitCommandError, Remote.create, bare_rw_repo, *arg_list)