equal
deleted
inserted
replaced
125 |
125 |
126 class httprepository(remoterepository): |
126 class httprepository(remoterepository): |
127 def __init__(self, ui, path): |
127 def __init__(self, ui, path): |
128 self.path = path |
128 self.path = path |
129 self.caps = None |
129 self.caps = None |
|
130 self.handler = None |
130 scheme, netloc, urlpath, query, frag = urlparse.urlsplit(path) |
131 scheme, netloc, urlpath, query, frag = urlparse.urlsplit(path) |
131 if query or frag: |
132 if query or frag: |
132 raise util.Abort(_('unsupported URL component: "%s"') % |
133 raise util.Abort(_('unsupported URL component: "%s"') % |
133 (query or frag)) |
134 (query or frag)) |
134 if not urlpath: urlpath = '/' |
135 if not urlpath: urlpath = '/' |
139 urlpath, '', '')) |
140 urlpath, '', '')) |
140 self.ui = ui |
141 self.ui = ui |
141 |
142 |
142 proxyurl = ui.config("http_proxy", "host") or os.getenv('http_proxy') |
143 proxyurl = ui.config("http_proxy", "host") or os.getenv('http_proxy') |
143 # XXX proxyauthinfo = None |
144 # XXX proxyauthinfo = None |
144 handlers = [httphandler()] |
145 self.handler = httphandler() |
|
146 handlers = [self.handler] |
145 |
147 |
146 if proxyurl: |
148 if proxyurl: |
147 # proxy can be proper url or host[:port] |
149 # proxy can be proper url or host[:port] |
148 if not (proxyurl.startswith('http:') or |
150 if not (proxyurl.startswith('http:') or |
149 proxyurl.startswith('https:')): |
151 proxyurl.startswith('https:')): |
197 opener = urllib2.build_opener(*handlers) |
199 opener = urllib2.build_opener(*handlers) |
198 |
200 |
199 # 1.0 here is the _protocol_ version |
201 # 1.0 here is the _protocol_ version |
200 opener.addheaders = [('User-agent', 'mercurial/proto-1.0')] |
202 opener.addheaders = [('User-agent', 'mercurial/proto-1.0')] |
201 urllib2.install_opener(opener) |
203 urllib2.install_opener(opener) |
|
204 |
|
205 def __del__(self): |
|
206 if self.handler: |
|
207 self.handler.close_all() |
|
208 self.handler = None |
202 |
209 |
203 def url(self): |
210 def url(self): |
204 return self.path |
211 return self.path |
205 |
212 |
206 # look up capabilities only when needed |
213 # look up capabilities only when needed |