summaryrefslogtreecommitdiffstats
path: root/manifest_xml.py
diff options
context:
space:
mode:
authorConley Owens <cco3@android.com>2012-11-12 17:35:30 -0800
committerGerrit Code Review <noreply-gerritcodereview@google.com>2012-11-12 17:35:30 -0800
commit2fa715f8b56b8f512806cbd1b3e0bf1b98c23c7e (patch)
treeaf56b9c56fc08936b9e2d8989497dd75fb085043 /manifest_xml.py
parent6287543e3508fbd3b92c975771c73e11fd4a5977 (diff)
parent717ece9d81ab428ff7358fb3d8a941f8371b626c (diff)
downloadgit-repo-2fa715f8b56b8f512806cbd1b3e0bf1b98c23c7e.tar.gz
Merge "Better handling of duplicate remotes"
Diffstat (limited to 'manifest_xml.py')
-rw-r--r--manifest_xml.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/manifest_xml.py b/manifest_xml.py
index d16f1a98..a3e78fe9 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -54,6 +54,12 @@ class _XmlRemote(object):
54 self.reviewUrl = review 54 self.reviewUrl = review
55 self.resolvedFetchUrl = self._resolveFetchUrl() 55 self.resolvedFetchUrl = self._resolveFetchUrl()
56 56
57 def __eq__(self, other):
58 return self.__dict__ == other.__dict__
59
60 def __ne__(self, other):
61 return self.__dict__ != other.__dict__
62
57 def _resolveFetchUrl(self): 63 def _resolveFetchUrl(self):
58 url = self.fetchUrl.rstrip('/') 64 url = self.fetchUrl.rstrip('/')
59 manifestUrl = self.manifestUrl.rstrip('/') 65 manifestUrl = self.manifestUrl.rstrip('/')
@@ -365,11 +371,14 @@ class XmlManifest(object):
365 for node in itertools.chain(*node_list): 371 for node in itertools.chain(*node_list):
366 if node.nodeName == 'remote': 372 if node.nodeName == 'remote':
367 remote = self._ParseRemote(node) 373 remote = self._ParseRemote(node)
368 if self._remotes.get(remote.name): 374 if remote:
369 raise ManifestParseError( 375 if remote.name in self._remotes:
370 'duplicate remote %s in %s' % 376 if remote != self._remotes[remote.name]:
371 (remote.name, self.manifestFile)) 377 raise ManifestParseError(
372 self._remotes[remote.name] = remote 378 'remote %s already exists with different attributes' %
379 (remote.name))
380 else:
381 self._remotes[remote.name] = remote
373 382
374 for node in itertools.chain(*node_list): 383 for node in itertools.chain(*node_list):
375 if node.nodeName == 'default': 384 if node.nodeName == 'default':