diff options
Diffstat (limited to 'manifest_xml.py')
| -rw-r--r-- | manifest_xml.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/manifest_xml.py b/manifest_xml.py index 9b7a81b3..eb8a98cc 100644 --- a/manifest_xml.py +++ b/manifest_xml.py | |||
| @@ -463,6 +463,19 @@ https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md | |||
| 463 | ' '.join(self._repo_hooks_project.enabled_repo_hooks)) | 463 | ' '.join(self._repo_hooks_project.enabled_repo_hooks)) |
| 464 | root.appendChild(e) | 464 | root.appendChild(e) |
| 465 | 465 | ||
| 466 | if self._superproject: | ||
| 467 | root.appendChild(doc.createTextNode('')) | ||
| 468 | e = doc.createElement('superproject') | ||
| 469 | e.setAttribute('name', self._superproject['name']) | ||
| 470 | remoteName = None | ||
| 471 | if d.remote: | ||
| 472 | remoteName = d.remote.name | ||
| 473 | remote = self._superproject.get('remote') | ||
| 474 | if not d.remote or remote.orig_name != remoteName: | ||
| 475 | remoteName = remote.orig_name | ||
| 476 | e.setAttribute('remote', remoteName) | ||
| 477 | root.appendChild(e) | ||
| 478 | |||
| 466 | return doc | 479 | return doc |
| 467 | 480 | ||
| 468 | def ToDict(self, **kwargs): | 481 | def ToDict(self, **kwargs): |
| @@ -473,6 +486,7 @@ https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md | |||
| 473 | 'default', | 486 | 'default', |
| 474 | 'manifest-server', | 487 | 'manifest-server', |
| 475 | 'repo-hooks', | 488 | 'repo-hooks', |
| 489 | 'superproject', | ||
| 476 | } | 490 | } |
| 477 | # Elements that may be repeated. | 491 | # Elements that may be repeated. |
| 478 | MULTI_ELEMENTS = { | 492 | MULTI_ELEMENTS = { |
| @@ -545,6 +559,11 @@ https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md | |||
| 545 | return self._repo_hooks_project | 559 | return self._repo_hooks_project |
| 546 | 560 | ||
| 547 | @property | 561 | @property |
| 562 | def superproject(self): | ||
| 563 | self._Load() | ||
| 564 | return self._superproject | ||
| 565 | |||
| 566 | @property | ||
| 548 | def notice(self): | 567 | def notice(self): |
| 549 | self._Load() | 568 | self._Load() |
| 550 | return self._notice | 569 | return self._notice |
| @@ -591,6 +610,7 @@ https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md | |||
| 591 | self._remotes = {} | 610 | self._remotes = {} |
| 592 | self._default = None | 611 | self._default = None |
| 593 | self._repo_hooks_project = None | 612 | self._repo_hooks_project = None |
| 613 | self._superproject = {} | ||
| 594 | self._notice = None | 614 | self._notice = None |
| 595 | self.branch = None | 615 | self.branch = None |
| 596 | self._manifest_server = None | 616 | self._manifest_server = None |
| @@ -793,6 +813,23 @@ https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md | |||
| 793 | 813 | ||
| 794 | # Store the enabled hooks in the Project object. | 814 | # Store the enabled hooks in the Project object. |
| 795 | self._repo_hooks_project.enabled_repo_hooks = enabled_repo_hooks | 815 | self._repo_hooks_project.enabled_repo_hooks = enabled_repo_hooks |
| 816 | if node.nodeName == 'superproject': | ||
| 817 | name = self._reqatt(node, 'name') | ||
| 818 | # There can only be one superproject. | ||
| 819 | if self._superproject.get('name'): | ||
| 820 | raise ManifestParseError( | ||
| 821 | 'duplicate superproject in %s' % | ||
| 822 | (self.manifestFile)) | ||
| 823 | self._superproject['name'] = name | ||
| 824 | remote_name = node.getAttribute('remote') | ||
| 825 | if not remote_name: | ||
| 826 | remote = self._default.remote | ||
| 827 | else: | ||
| 828 | remote = self._get_remote(node) | ||
| 829 | if remote is None: | ||
| 830 | raise ManifestParseError("no remote for superproject %s within %s" % | ||
| 831 | (name, self.manifestFile)) | ||
| 832 | self._superproject['remote'] = remote.ToRemoteSpec(name) | ||
| 796 | if node.nodeName == 'remove-project': | 833 | if node.nodeName == 'remove-project': |
| 797 | name = self._reqatt(node, 'name') | 834 | name = self._reqatt(node, 'name') |
| 798 | 835 | ||
