diff options
| -rw-r--r-- | manifest_xml.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/manifest_xml.py b/manifest_xml.py index c5f3bcc9..f2ac77a5 100644 --- a/manifest_xml.py +++ b/manifest_xml.py | |||
| @@ -519,12 +519,15 @@ class XmlManifest(object): | |||
| 519 | self._repo_hooks_project.enabled_repo_hooks = enabled_repo_hooks | 519 | self._repo_hooks_project.enabled_repo_hooks = enabled_repo_hooks |
| 520 | if node.nodeName == 'remove-project': | 520 | if node.nodeName == 'remove-project': |
| 521 | name = self._reqatt(node, 'name') | 521 | name = self._reqatt(node, 'name') |
| 522 | try: | 522 | |
| 523 | del self._projects[name] | 523 | if name not in self._projects: |
| 524 | except KeyError: | ||
| 525 | raise ManifestParseError('remove-project element specifies non-existent ' | 524 | raise ManifestParseError('remove-project element specifies non-existent ' |
| 526 | 'project: %s' % name) | 525 | 'project: %s' % name) |
| 527 | 526 | ||
| 527 | for p in self._projects[name]: | ||
| 528 | del self._paths[p.relpath] | ||
| 529 | del self._projects[name] | ||
| 530 | |||
| 528 | # If the manifest removes the hooks project, treat it as if it deleted | 531 | # If the manifest removes the hooks project, treat it as if it deleted |
| 529 | # the repo-hooks element too. | 532 | # the repo-hooks element too. |
| 530 | if self._repo_hooks_project and (self._repo_hooks_project.name == name): | 533 | if self._repo_hooks_project and (self._repo_hooks_project.name == name): |
