summaryrefslogtreecommitdiffstats
path: root/manifest_xml.py
diff options
context:
space:
mode:
Diffstat (limited to 'manifest_xml.py')
-rw-r--r--manifest_xml.py24
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'
40LOCAL_MANIFESTS_DIR_NAME = 'local_manifests' 40LOCAL_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.
43urllib.parse.uses_relative.extend(['ssh', 'git', 'persistent-https', 'rpc']) 43urllib.parse.uses_relative.extend([
44urllib.parse.uses_netloc.extend(['ssh', 'git', 'persistent-https', 'rpc']) 44 'ssh',
45 'git',
46 'persistent-https',
47 'sso',
48 'rpc'])
49urllib.parse.uses_netloc.extend([
50 'ssh',
51 'git',
52 'persistent-https',
53 'sso',
54 'rpc'])
45 55
46class _Default(object): 56class _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 """