url: add trailing slashes to URLs with hostnames that don't have one

This works around a potential issue in Python 2.4 where cloning a repo
with a URL like http://foo:8080 would cause urllib2 to query on
http://foo:8080?cmd=capabilities instead of
http://foo:8080/?cmd=capabilities.

In the past, this issue has been masked by the fact that
url.getauthinfo() added a trailing slash when it was missing.
This commit is contained in:
Brodie Rao 2011-03-30 20:00:23 -07:00
parent 193402d9df
commit 40c99bbacb
3 changed files with 4 additions and 5 deletions

View File

@ -156,7 +156,7 @@ class url(object):
>>> str(url('http://localhost:80/'))
'http://localhost:80/'
>>> str(url('http://localhost:80'))
'http://localhost:80'
'http://localhost:80/'
>>> str(url('bundle:foo'))
'bundle:foo'
>>> str(url('path'))
@ -185,8 +185,7 @@ class url(object):
s += self.host
if self.port:
s += ':' + urllib.quote(self.port)
if ((self.host and self.path is not None) or
(self.host and self.query or self.fragment)):
if self.host:
s += '/'
if self.path:
s += urllib.quote(self.path, safe=self._safepchars)

View File

@ -30,7 +30,7 @@
$ echo bar >> b/foo
$ hg -R b ci -m bar
$ hg --encoding utf-8 -R b push
pushing to http://localhost:$HGPORT1
pushing to http://localhost:$HGPORT1/
searching for changes
remote: adding changesets
remote: adding manifests

View File

@ -26,7 +26,7 @@ check that {1} syntax works
$ hg incoming --debug parts://localhost
using http://localhost:$HGPORT/
sending capabilities command
comparing with parts://localhost
comparing with parts://localhost/
sending heads command
searching for changes
sending known command