diff options
Diffstat (limited to 'manifest_xml.py')
-rw-r--r-- | manifest_xml.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/manifest_xml.py b/manifest_xml.py index 295493de..0859e1fb 100644 --- a/manifest_xml.py +++ b/manifest_xml.py | |||
@@ -40,8 +40,18 @@ LOCAL_MANIFEST_NAME = 'local_manifest.xml' | |||
40 | LOCAL_MANIFESTS_DIR_NAME = 'local_manifests' | 40 | LOCAL_MANIFESTS_DIR_NAME = 'local_manifests' |
41 | 41 | ||
42 | # urljoin gets confused if the scheme is not known. | 42 | # urljoin gets confused if the scheme is not known. |
43 | urllib.parse.uses_relative.extend(['ssh', 'git', 'persistent-https', 'rpc']) | 43 | urllib.parse.uses_relative.extend([ |
44 | urllib.parse.uses_netloc.extend(['ssh', 'git', 'persistent-https', 'rpc']) | 44 | 'ssh', |
45 | 'git', | ||
46 | 'persistent-https', | ||
47 | 'sso', | ||
48 | 'rpc']) | ||
49 | urllib.parse.uses_netloc.extend([ | ||
50 | 'ssh', | ||
51 | 'git', | ||
52 | 'persistent-https', | ||
53 | 'sso', | ||
54 | 'rpc']) | ||
45 | 55 | ||
46 | class _Default(object): | 56 | class _Default(object): |
47 | """Project defaults within the manifest.""" | 57 | """Project defaults within the manifest.""" |
@@ -64,11 +74,13 @@ class _XmlRemote(object): | |||
64 | name, | 74 | name, |
65 | alias=None, | 75 | alias=None, |
66 | fetch=None, | 76 | fetch=None, |
77 | pushUrl=None, | ||
67 | manifestUrl=None, | 78 | manifestUrl=None, |
68 | review=None, | 79 | review=None, |
69 | revision=None): | 80 | revision=None): |
70 | self.name = name | 81 | self.name = name |
71 | self.fetchUrl = fetch | 82 | self.fetchUrl = fetch |
83 | self.pushUrl = pushUrl | ||
72 | self.manifestUrl = manifestUrl | 84 | self.manifestUrl = manifestUrl |
73 | self.remoteAlias = alias | 85 | self.remoteAlias = alias |
74 | self.reviewUrl = review | 86 | self.reviewUrl = review |
@@ -104,6 +116,7 @@ class _XmlRemote(object): | |||
104 | remoteName = self.remoteAlias | 116 | remoteName = self.remoteAlias |
105 | return RemoteSpec(remoteName, | 117 | return RemoteSpec(remoteName, |
106 | url=url, | 118 | url=url, |
119 | pushUrl=self.pushUrl, | ||
107 | review=self.reviewUrl, | 120 | review=self.reviewUrl, |
108 | orig_name=self.name) | 121 | orig_name=self.name) |
109 | 122 | ||
@@ -160,6 +173,8 @@ class XmlManifest(object): | |||
160 | root.appendChild(e) | 173 | root.appendChild(e) |
161 | e.setAttribute('name', r.name) | 174 | e.setAttribute('name', r.name) |
162 | e.setAttribute('fetch', r.fetchUrl) | 175 | e.setAttribute('fetch', r.fetchUrl) |
176 | if r.pushUrl is not None: | ||
177 | e.setAttribute('pushurl', r.pushUrl) | ||
163 | if r.remoteAlias is not None: | 178 | if r.remoteAlias is not None: |
164 | e.setAttribute('alias', r.remoteAlias) | 179 | e.setAttribute('alias', r.remoteAlias) |
165 | if r.reviewUrl is not None: | 180 | if r.reviewUrl is not None: |
@@ -639,6 +654,9 @@ class XmlManifest(object): | |||
639 | if alias == '': | 654 | if alias == '': |
640 | alias = None | 655 | alias = None |
641 | fetch = self._reqatt(node, 'fetch') | 656 | fetch = self._reqatt(node, 'fetch') |
657 | pushUrl = node.getAttribute('pushurl') | ||
658 | if pushUrl == '': | ||
659 | pushUrl = None | ||
642 | review = node.getAttribute('review') | 660 | review = node.getAttribute('review') |
643 | if review == '': | 661 | if review == '': |
644 | review = None | 662 | review = None |
@@ -646,7 +664,7 @@ class XmlManifest(object): | |||
646 | if revision == '': | 664 | if revision == '': |
647 | revision = None | 665 | revision = None |
648 | manifestUrl = self.manifestProject.config.GetString('remote.origin.url') | 666 | manifestUrl = self.manifestProject.config.GetString('remote.origin.url') |
649 | return _XmlRemote(name, alias, fetch, manifestUrl, review, revision) | 667 | return _XmlRemote(name, alias, fetch, pushUrl, manifestUrl, review, revision) |
650 | 668 | ||
651 | def _ParseDefault(self, node): | 669 | def _ParseDefault(self, node): |
652 | """ | 670 | """ |