diff options
Diffstat (limited to 'manifest_xml.py')
-rw-r--r-- | manifest_xml.py | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/manifest_xml.py b/manifest_xml.py index 647e89f9..c5f3bcc9 100644 --- a/manifest_xml.py +++ b/manifest_xml.py | |||
@@ -51,6 +51,12 @@ class _Default(object): | |||
51 | sync_c = False | 51 | sync_c = False |
52 | sync_s = False | 52 | sync_s = False |
53 | 53 | ||
54 | def __eq__(self, other): | ||
55 | return self.__dict__ == other.__dict__ | ||
56 | |||
57 | def __ne__(self, other): | ||
58 | return self.__dict__ != other.__dict__ | ||
59 | |||
54 | class _XmlRemote(object): | 60 | class _XmlRemote(object): |
55 | def __init__(self, | 61 | def __init__(self, |
56 | name, | 62 | name, |
@@ -92,7 +98,7 @@ class _XmlRemote(object): | |||
92 | url = self.resolvedFetchUrl.rstrip('/') + '/' + projectName | 98 | url = self.resolvedFetchUrl.rstrip('/') + '/' + projectName |
93 | remoteName = self.name | 99 | remoteName = self.name |
94 | if self.remoteAlias: | 100 | if self.remoteAlias: |
95 | remoteName = self.remoteAlias | 101 | remoteName = self.remoteAlias |
96 | return RemoteSpec(remoteName, url, self.reviewUrl) | 102 | return RemoteSpec(remoteName, url, self.reviewUrl) |
97 | 103 | ||
98 | class XmlManifest(object): | 104 | class XmlManifest(object): |
@@ -228,7 +234,9 @@ class XmlManifest(object): | |||
228 | e.setAttribute('name', name) | 234 | e.setAttribute('name', name) |
229 | if relpath != name: | 235 | if relpath != name: |
230 | e.setAttribute('path', relpath) | 236 | e.setAttribute('path', relpath) |
231 | remoteName = d.remote.remoteAlias or d.remote.name | 237 | remoteName = None |
238 | if d.remote: | ||
239 | remoteName = d.remote.remoteAlias or d.remote.name | ||
232 | if not d.remote or p.remote.name != remoteName: | 240 | if not d.remote or p.remote.name != remoteName: |
233 | e.setAttribute('remote', p.remote.name) | 241 | e.setAttribute('remote', p.remote.name) |
234 | if peg_rev: | 242 | if peg_rev: |
@@ -325,6 +333,10 @@ class XmlManifest(object): | |||
325 | def IsMirror(self): | 333 | def IsMirror(self): |
326 | return self.manifestProject.config.GetBoolean('repo.mirror') | 334 | return self.manifestProject.config.GetBoolean('repo.mirror') |
327 | 335 | ||
336 | @property | ||
337 | def IsArchive(self): | ||
338 | return self.manifestProject.config.GetBoolean('repo.archive') | ||
339 | |||
328 | def _Unload(self): | 340 | def _Unload(self): |
329 | self._loaded = False | 341 | self._loaded = False |
330 | self._projects = {} | 342 | self._projects = {} |
@@ -432,11 +444,13 @@ class XmlManifest(object): | |||
432 | 444 | ||
433 | for node in itertools.chain(*node_list): | 445 | for node in itertools.chain(*node_list): |
434 | if node.nodeName == 'default': | 446 | if node.nodeName == 'default': |
435 | if self._default is not None: | 447 | new_default = self._ParseDefault(node) |
436 | raise ManifestParseError( | 448 | if self._default is None: |
437 | 'duplicate default in %s' % | 449 | self._default = new_default |
438 | (self.manifestFile)) | 450 | elif new_default != self._default: |
439 | self._default = self._ParseDefault(node) | 451 | raise ManifestParseError('duplicate default in %s' % |
452 | (self.manifestFile)) | ||
453 | |||
440 | if self._default is None: | 454 | if self._default is None: |
441 | self._default = _Default() | 455 | self._default = _Default() |
442 | 456 | ||