summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Campergue <julien.campergue@parrot.com>2013-10-09 14:38:46 +0200
committerJulien Campergue <julien.campergue@parrot.com>2013-10-10 18:14:27 +0200
commit7487992bd33d5cbf314d234c13a085c56200b33e (patch)
tree51cace1031fb93f10ae6fe2c7dc0bc4e897539ab
parente76efdd7b342577c40aa271fa5ded9d66a783a9b (diff)
downloadgit-repo-7487992bd33d5cbf314d234c13a085c56200b33e.tar.gz
Better handling of duplicate default
Currently, an error is raised if more than one default is defined. When including another manifest, it is likely that a default has been defined in both manifests. Don't raise an error if all the defaults defined have the same attributes. Change-Id: I2603020687e2ba04c2c62c3268ee375279b34a08 Signed-off-by: Julien Campergue <julien.campergue@parrot.com>
-rw-r--r--manifest_xml.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/manifest_xml.py b/manifest_xml.py
index e40e6fac..eb4908da 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,
@@ -422,11 +428,14 @@ class XmlManifest(object):
422 428
423 for node in itertools.chain(*node_list): 429 for node in itertools.chain(*node_list):
424 if node.nodeName == 'default': 430 if node.nodeName == 'default':
425 if self._default is not None: 431 new_default = self._ParseDefault(node)
426 raise ManifestParseError( 432 if self._default is None:
427 'duplicate default in %s' % 433 self._default = new_default
428 (self.manifestFile)) 434 elif new_default != self._default:
429 self._default = self._ParseDefault(node) 435 raise ManifestParseError(
436 'duplicate default in %s' %
437 (self.manifestFile))
438
430 if self._default is None: 439 if self._default is None:
431 self._default = _Default() 440 self._default = _Default()
432 441