summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2011-06-08 11:24:10 +0200
committerSebastian Thiel <byronimo@gmail.com>2011-06-08 11:24:10 +0200
commita5a75ab7533de99a4f569b05535061581cb07a41 (patch)
treef216ef134e43d33ca5d0be737546ef98b8abf731
parentb7071ce13476cae789377c280aa274e6242fd756 (diff)
downloadgitpython-a5a75ab7533de99a4f569b05535061581cb07a41.tar.gz
relaxed implementation when comparing symbolic references against other items which don't have a path. Fixed test_refs to work in all cases - it was previously dependent on the order of items returned by the file system
-rw-r--r--git/refs/symbolic.py4
-rw-r--r--git/test/test_refs.py9
2 files changed, 12 insertions, 1 deletions
diff --git a/git/refs/symbolic.py b/git/refs/symbolic.py
index 1c6a3bf1..65327a2f 100644
--- a/git/refs/symbolic.py
+++ b/git/refs/symbolic.py
@@ -46,7 +46,9 @@ class SymbolicReference(object):
return '<git.%s "%s">' % (self.__class__.__name__, self.path)
def __eq__(self, other):
- return self.path == other.path
+ if hasattr(other, 'path'):
+ return self.path == other.path
+ return False
def __ne__(self, other):
return not ( self == other )
diff --git a/git/test/test_refs.py b/git/test/test_refs.py
index f0473871..092861da 100644
--- a/git/test/test_refs.py
+++ b/git/test/test_refs.py
@@ -290,6 +290,15 @@ class TestRefs(TestBase):
assert remotes
for remote in remotes:
refs = remote.refs
+
+ # If a HEAD exists, it must be deleted first. Otherwise it might
+ # end up pointing to an invalid ref it the ref was deleted before.
+ remote_head_name = "HEAD"
+ if remote_head_name in refs:
+ RemoteReference.delete(rw_repo, refs[remote_head_name])
+ del(refs[remote_head_name])
+ #END handle HEAD deletion
+
RemoteReference.delete(rw_repo, *refs)
remote_refs_so_far += len(refs)
for ref in refs: