comparison mercurial/hg.py @ 2471:6904e1ef8ad1

merge with crew.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Tue, 20 Jun 2006 23:58:45 -0700
parents 2e91ba371c4c
children 7a77934ece46
comparison
equal deleted inserted replaced
2470:fe1689273f84 2471:6904e1ef8ad1
9 from repo import * 9 from repo import *
10 from demandload import * 10 from demandload import *
11 from i18n import gettext as _ 11 from i18n import gettext as _
12 demandload(globals(), "localrepo bundlerepo httprepo sshrepo statichttprepo") 12 demandload(globals(), "localrepo bundlerepo httprepo sshrepo statichttprepo")
13 13
14 def bundle(ui, path):
15 if path.startswith('bundle://'):
16 path = path[9:]
17 else:
18 path = path[7:]
19 s = path.split("+", 1)
20 if len(s) == 1:
21 repopath, bundlename = "", s[0]
22 else:
23 repopath, bundlename = s
24 return bundlerepo.bundlerepository(ui, repopath, bundlename)
25
26 def hg(ui, path):
27 ui.warn(_("hg:// syntax is deprecated, please use http:// instead\n"))
28 return httprepo.httprepository(ui, path.replace("hg://", "http://"))
29
30 def local_(ui, path, create=0):
31 return localrepo.localrepository(ui, path, create)
32
33 def old_http(ui, path):
34 ui.warn(_("old-http:// syntax is deprecated, "
35 "please use static-http:// instead\n"))
36 return statichttprepo.statichttprepository(
37 ui, path.replace("old-http://", "http://"))
38
39 def static_http(ui, path):
40 return statichttprepo.statichttprepository(
41 ui, path.replace("static-http://", "http://"))
42
43 protocols = {
44 'bundle': bundle,
45 'file': local_,
46 'hg': hg,
47 'http': lambda ui, path: httprepo.httprepository(ui, path),
48 'https': lambda ui, path: httprepo.httpsrepository(ui, path),
49 'old-http': old_http,
50 'ssh': lambda ui, path: sshrepo.sshrepository(ui, path),
51 'static-http': static_http,
52 None: local_,
53 }
54
14 def repository(ui, path=None, create=0): 55 def repository(ui, path=None, create=0):
15 if path: 56 scheme = path
16 if path.startswith("http://"): 57 if scheme:
17 return httprepo.httprepository(ui, path) 58 c = scheme.find(':')
18 if path.startswith("https://"): 59 scheme = c >= 0 and scheme[:c]
19 return httprepo.httpsrepository(ui, path) 60 if not scheme: scheme = None
20 if path.startswith("hg://"): 61 try:
21 ui.warn(_("hg:// syntax is deprecated, " 62 ctor = protocols[scheme]
22 "please use http:// instead\n")) 63 if create:
23 return httprepo.httprepository( 64 return ctor(ui, path, create)
24 ui, path.replace("hg://", "http://")) 65 return ctor(ui, path)
25 if path.startswith("old-http://"): 66 except KeyError:
26 ui.warn(_("old-http:// syntax is deprecated, " 67 raise util.Abort(_('protocol "%s" not known') % scheme)
27 "please use static-http:// instead\n")) 68 except TypeError:
28 return statichttprepo.statichttprepository( 69 raise util.Abort(_('cannot create new repository over "%s" protocol') %
29 ui, path.replace("old-http://", "http://")) 70 (scheme or 'file'))
30 if path.startswith("static-http://"):
31 return statichttprepo.statichttprepository(
32 ui, path.replace("static-http://", "http://"))
33 if path.startswith("ssh://"):
34 return sshrepo.sshrepository(ui, path)
35 if path.startswith("bundle://"):
36 path = path[9:]
37 s = path.split("+", 1)
38 if len(s) == 1:
39 repopath, bundlename = "", s[0]
40 else:
41 repopath, bundlename = s
42 return bundlerepo.bundlerepository(ui, repopath, bundlename)
43
44 return localrepo.localrepository(ui, path, create)