Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/localrepo.py @ 1101:2cf5c8a4eae5
Separate out old-http support
- create new statichttprepo class
- pull remote bits out of localrepo
- pull remote bits out of util.opener
- switch hg.repository to use statichttprepo
author | mpm@selenic.com |
---|---|
date | Sat, 27 Aug 2005 16:28:53 -0700 |
parents | d6b6a15cc7c6 |
children | c81d264cd17d |
comparison
equal
deleted
inserted
replaced
1100:d6b6a15cc7c6 | 1101:2cf5c8a4eae5 |
---|---|
11 from demandload import * | 11 from demandload import * |
12 demandload(globals(), "re lock transaction tempfile stat mdiff") | 12 demandload(globals(), "re lock transaction tempfile stat mdiff") |
13 | 13 |
14 class localrepository: | 14 class localrepository: |
15 def __init__(self, ui, opener, path=None, create=0): | 15 def __init__(self, ui, opener, path=None, create=0): |
16 self.remote = 0 | 16 if not path: |
17 if path and path.startswith("http://"): | 17 p = os.getcwd() |
18 self.remote = 1 | 18 while not os.path.isdir(os.path.join(p, ".hg")): |
19 self.path = path | 19 oldp = p |
20 else: | 20 p = os.path.dirname(p) |
21 if not path: | 21 if p == oldp: raise repo.RepoError("no repo found") |
22 p = os.getcwd() | 22 path = p |
23 while not os.path.isdir(os.path.join(p, ".hg")): | 23 self.path = os.path.join(path, ".hg") |
24 oldp = p | 24 |
25 p = os.path.dirname(p) | 25 if not create and not os.path.isdir(self.path): |
26 if p == oldp: raise repo.RepoError("no repo found") | 26 raise repo.RepoError("repository %s not found" % self.path) |
27 path = p | |
28 self.path = os.path.join(path, ".hg") | |
29 | |
30 if not create and not os.path.isdir(self.path): | |
31 raise repo.RepoError("repository %s not found" % self.path) | |
32 | 27 |
33 self.root = os.path.abspath(path) | 28 self.root = os.path.abspath(path) |
34 self.ui = ui | 29 self.ui = ui |
35 | 30 |
36 if create: | 31 if create: |
42 self.manifest = manifest.manifest(self.opener) | 37 self.manifest = manifest.manifest(self.opener) |
43 self.changelog = changelog.changelog(self.opener) | 38 self.changelog = changelog.changelog(self.opener) |
44 self.tagscache = None | 39 self.tagscache = None |
45 self.nodetagscache = None | 40 self.nodetagscache = None |
46 | 41 |
47 if not self.remote: | 42 self.dirstate = dirstate.dirstate(self.opener, ui, self.root) |
48 self.dirstate = dirstate.dirstate(self.opener, ui, self.root) | 43 try: |
49 try: | 44 self.ui.readconfig(self.opener("hgrc")) |
50 self.ui.readconfig(self.opener("hgrc")) | 45 except IOError: pass |
51 except IOError: pass | |
52 | 46 |
53 def hook(self, name, **args): | 47 def hook(self, name, **args): |
54 s = self.ui.config("hooks", name) | 48 s = self.ui.config("hooks", name) |
55 if s: | 49 if s: |
56 self.ui.note("running hook %s: %s\n" % (name, s)) | 50 self.ui.note("running hook %s: %s\n" % (name, s)) |
140 return self.changelog.lookup(key) | 134 return self.changelog.lookup(key) |
141 except: | 135 except: |
142 raise repo.RepoError("unknown revision '%s'" % key) | 136 raise repo.RepoError("unknown revision '%s'" % key) |
143 | 137 |
144 def dev(self): | 138 def dev(self): |
145 if self.remote: return -1 | |
146 return os.stat(self.path).st_dev | 139 return os.stat(self.path).st_dev |
147 | 140 |
148 def local(self): | 141 def local(self): |
149 return not self.remote | 142 return True |
150 | 143 |
151 def join(self, f): | 144 def join(self, f): |
152 return os.path.join(self.path, f) | 145 return os.path.join(self.path, f) |
153 | 146 |
154 def wjoin(self, f): | 147 def wjoin(self, f): |