summaryrefslogtreecommitdiffstats
path: root/manifest_xml.py
diff options
context:
space:
mode:
Diffstat (limited to 'manifest_xml.py')
-rw-r--r--manifest_xml.py28
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
54class _XmlRemote(object): 60class _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
98class XmlManifest(object): 104class 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