mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
Support resolving relative fetch URLs on persistent-https://
Some versions of Python will only attempt to resolve a relative URL if they understand the URL scheme. Convert persistent-http:// and persistent-https:// schemes to the more typical http:// and https:// versions for the resolve call. Change-Id: I99072d5a69be8cfaa429a3ab177ba644d928ffba
This commit is contained in:
parent
7bdbde7af8
commit
a9f11b3cb2
@ -65,12 +65,19 @@ class _XmlRemote(object):
|
|||||||
def _resolveFetchUrl(self):
|
def _resolveFetchUrl(self):
|
||||||
url = self.fetchUrl.rstrip('/')
|
url = self.fetchUrl.rstrip('/')
|
||||||
manifestUrl = self.manifestUrl.rstrip('/')
|
manifestUrl = self.manifestUrl.rstrip('/')
|
||||||
|
p = manifestUrl.startswith('persistent-http')
|
||||||
|
if p:
|
||||||
|
manifestUrl = manifestUrl[len('persistent-'):]
|
||||||
|
|
||||||
# urljoin will get confused if there is no scheme in the base url
|
# urljoin will get confused if there is no scheme in the base url
|
||||||
# ie, if manifestUrl is of the form <hostname:port>
|
# ie, if manifestUrl is of the form <hostname:port>
|
||||||
if manifestUrl.find(':') != manifestUrl.find('/') - 1:
|
if manifestUrl.find(':') != manifestUrl.find('/') - 1:
|
||||||
manifestUrl = 'gopher://' + manifestUrl
|
manifestUrl = 'gopher://' + manifestUrl
|
||||||
url = urlparse.urljoin(manifestUrl, url)
|
url = urlparse.urljoin(manifestUrl, url)
|
||||||
return re.sub(r'^gopher://', '', url)
|
url = re.sub(r'^gopher://', '', url)
|
||||||
|
if p:
|
||||||
|
url = 'persistent-' + url
|
||||||
|
return url
|
||||||
|
|
||||||
def ToRemoteSpec(self, projectName):
|
def ToRemoteSpec(self, projectName):
|
||||||
url = self.resolvedFetchUrl.rstrip('/') + '/' + projectName
|
url = self.resolvedFetchUrl.rstrip('/') + '/' + projectName
|
||||||
|
Loading…
Reference in New Issue
Block a user