4 # Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com> |
4 # Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com> |
5 # |
5 # |
6 # This software may be used and distributed according to the terms |
6 # This software may be used and distributed according to the terms |
7 # of the GNU General Public License, incorporated herein by reference. |
7 # of the GNU General Public License, incorporated herein by reference. |
8 |
8 |
9 from node import bin, hex |
9 from node import bin, hex, nullid |
10 from i18n import _ |
10 from i18n import _ |
11 import repo, os, urllib, urllib2, urlparse, zlib, util, httplib |
11 import repo, os, urllib, urllib2, urlparse, zlib, util, httplib |
12 import errno, keepalive, socket, changegroup |
12 import errno, keepalive, socket, changegroup, statichttprepo |
13 |
13 |
14 class passwordmgr(urllib2.HTTPPasswordMgrWithDefaultRealm): |
14 class passwordmgr(urllib2.HTTPPasswordMgrWithDefaultRealm): |
15 def __init__(self, ui): |
15 def __init__(self, ui): |
16 urllib2.HTTPPasswordMgrWithDefaultRealm.__init__(self) |
16 urllib2.HTTPPasswordMgrWithDefaultRealm.__init__(self) |
17 self.ui = ui |
17 self.ui = ui |
453 httprepository.__init__(self, ui, path) |
453 httprepository.__init__(self, ui, path) |
454 |
454 |
455 def instance(ui, path, create): |
455 def instance(ui, path, create): |
456 if create: |
456 if create: |
457 raise util.Abort(_('cannot create new http repository')) |
457 raise util.Abort(_('cannot create new http repository')) |
458 if path.startswith('https:'): |
458 try: |
459 return httpsrepository(ui, path) |
459 if path.startswith('https:'): |
460 return httprepository(ui, path) |
460 inst = httpsrepository(ui, path) |
|
461 else: |
|
462 inst = httprepository(ui, path) |
|
463 inst.between([(nullid, nullid)]) |
|
464 return inst |
|
465 except repo.RepoError: |
|
466 ui.note('(falling back to static-http)\n') |
|
467 return statichttprepo.instance(ui, "static-" + path, create) |