diff options
author | Conley Owens <cco3@android.com> | 2012-11-12 17:35:30 -0800 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2012-11-12 17:35:30 -0800 |
commit | 2fa715f8b56b8f512806cbd1b3e0bf1b98c23c7e (patch) | |
tree | af56b9c56fc08936b9e2d8989497dd75fb085043 /manifest_xml.py | |
parent | 6287543e3508fbd3b92c975771c73e11fd4a5977 (diff) | |
parent | 717ece9d81ab428ff7358fb3d8a941f8371b626c (diff) | |
download | git-repo-2fa715f8b56b8f512806cbd1b3e0bf1b98c23c7e.tar.gz |
Merge "Better handling of duplicate remotes"
Diffstat (limited to 'manifest_xml.py')
-rw-r--r-- | manifest_xml.py | 19 |
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': |