Mercurial > public > mercurial-scm > hg
comparison mercurial/localrepo.py @ 3853:c0b449154a90
switch to the .hg/store layout, fix the tests
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Fri, 01 Dec 2006 13:34:09 +0100 |
parents | 8f18e31c4441 |
children | 4f6db0233606 |
comparison
equal
deleted
inserted
replaced
3852:8a9a1a7e1698 | 3853:c0b449154a90 |
---|---|
14 demandload(globals(), "re lock transaction tempfile stat mdiff errno ui") | 14 demandload(globals(), "re lock transaction tempfile stat mdiff errno ui") |
15 demandload(globals(), "os revlog time util") | 15 demandload(globals(), "os revlog time util") |
16 | 16 |
17 class localrepository(repo.repository): | 17 class localrepository(repo.repository): |
18 capabilities = ('lookup', 'changegroupsubset') | 18 capabilities = ('lookup', 'changegroupsubset') |
19 supported = ('revlogv1',) | 19 supported = ('revlogv1', 'store') |
20 | 20 |
21 def __del__(self): | 21 def __del__(self): |
22 self.transhandle = None | 22 self.transhandle = None |
23 def __init__(self, parentui, path=None, create=0): | 23 def __init__(self, parentui, path=None, create=0): |
24 repo.repository.__init__(self) | 24 repo.repository.__init__(self) |
41 if not os.path.isdir(self.path): | 41 if not os.path.isdir(self.path): |
42 if create: | 42 if create: |
43 if not os.path.exists(path): | 43 if not os.path.exists(path): |
44 os.mkdir(path) | 44 os.mkdir(path) |
45 os.mkdir(self.path) | 45 os.mkdir(self.path) |
46 #if self.spath != self.path: | 46 os.mkdir(os.path.join(self.path, "store")) |
47 # os.mkdir(self.spath) | 47 requirements = ("revlogv1", "store") |
48 requirements = ("revlogv1",) | |
49 reqfile = self.opener("requires", "w") | 48 reqfile = self.opener("requires", "w") |
50 for r in requirements: | 49 for r in requirements: |
51 reqfile.write("%s\n" % r) | 50 reqfile.write("%s\n" % r) |
52 reqfile.close() | 51 reqfile.close() |
52 # create an invalid changelog | |
53 self.opener("00changelog.i", "a").write('\0\0\0\2') | |
53 else: | 54 else: |
54 raise repo.RepoError(_("repository %s not found") % path) | 55 raise repo.RepoError(_("repository %s not found") % path) |
55 elif create: | 56 elif create: |
56 raise repo.RepoError(_("repository %s already exists") % path) | 57 raise repo.RepoError(_("repository %s already exists") % path) |
57 else: | 58 else: |
66 for r in requirements: | 67 for r in requirements: |
67 if r not in self.supported: | 68 if r not in self.supported: |
68 raise repo.RepoError(_("requirement '%s' not supported") % r) | 69 raise repo.RepoError(_("requirement '%s' not supported") % r) |
69 | 70 |
70 # setup store | 71 # setup store |
71 self.spath = self.path | 72 if "store" in requirements: |
72 self.sopener = util.opener(self.spath) | 73 self.encodefn = util.encodefilename |
74 self.decodefn = util.decodefilename | |
75 self.spath = os.path.join(self.path, "store") | |
76 else: | |
77 self.encodefn = lambda x: x | |
78 self.decodefn = lambda x: x | |
79 self.spath = self.path | |
80 self.sopener = util.encodedopener(util.opener(self.spath), self.encodefn) | |
73 | 81 |
74 self.ui = ui.ui(parentui=parentui) | 82 self.ui = ui.ui(parentui=parentui) |
75 try: | 83 try: |
76 self.ui.readconfig(self.join("hgrc"), self.root) | 84 self.ui.readconfig(self.join("hgrc"), self.root) |
77 except IOError: | 85 except IOError: |
418 | 426 |
419 def join(self, f): | 427 def join(self, f): |
420 return os.path.join(self.path, f) | 428 return os.path.join(self.path, f) |
421 | 429 |
422 def sjoin(self, f): | 430 def sjoin(self, f): |
431 f = self.encodefn(f) | |
423 return os.path.join(self.spath, f) | 432 return os.path.join(self.spath, f) |
424 | 433 |
425 def wjoin(self, f): | 434 def wjoin(self, f): |
426 return os.path.join(self.root, f) | 435 return os.path.join(self.root, f) |
427 | 436 |