Merge "Better handling of duplicate remotes"

This commit is contained in:
Conley Owens 2012-11-12 17:35:30 -08:00 committed by Gerrit Code Review
commit 2fa715f8b5

View File

@ -54,6 +54,12 @@ class _XmlRemote(object):
self.reviewUrl = review self.reviewUrl = review
self.resolvedFetchUrl = self._resolveFetchUrl() self.resolvedFetchUrl = self._resolveFetchUrl()
def __eq__(self, other):
return self.__dict__ == other.__dict__
def __ne__(self, other):
return self.__dict__ != other.__dict__
def _resolveFetchUrl(self): def _resolveFetchUrl(self):
url = self.fetchUrl.rstrip('/') url = self.fetchUrl.rstrip('/')
manifestUrl = self.manifestUrl.rstrip('/') manifestUrl = self.manifestUrl.rstrip('/')
@ -365,11 +371,14 @@ class XmlManifest(object):
for node in itertools.chain(*node_list): for node in itertools.chain(*node_list):
if node.nodeName == 'remote': if node.nodeName == 'remote':
remote = self._ParseRemote(node) remote = self._ParseRemote(node)
if self._remotes.get(remote.name): if remote:
raise ManifestParseError( if remote.name in self._remotes:
'duplicate remote %s in %s' % if remote != self._remotes[remote.name]:
(remote.name, self.manifestFile)) raise ManifestParseError(
self._remotes[remote.name] = remote 'remote %s already exists with different attributes' %
(remote.name))
else:
self._remotes[remote.name] = remote
for node in itertools.chain(*node_list): for node in itertools.chain(*node_list):
if node.nodeName == 'default': if node.nodeName == 'default':