Mercurial > public > mercurial-scm > hg
comparison mercurial/localrepo.py @ 3851:8f18e31c4441
add "requires" file to the repo, specifying the requirements
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Sun, 10 Dec 2006 00:06:59 +0100 |
parents | a4457828ca1a |
children | c0b449154a90 |
comparison
equal
deleted
inserted
replaced
3850:a4457828ca1a | 3851:8f18e31c4441 |
---|---|
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 | 20 |
20 def __del__(self): | 21 def __del__(self): |
21 self.transhandle = None | 22 self.transhandle = None |
22 def __init__(self, parentui, path=None, create=0): | 23 def __init__(self, parentui, path=None, create=0): |
23 repo.repository.__init__(self) | 24 repo.repository.__init__(self) |
42 if not os.path.exists(path): | 43 if not os.path.exists(path): |
43 os.mkdir(path) | 44 os.mkdir(path) |
44 os.mkdir(self.path) | 45 os.mkdir(self.path) |
45 #if self.spath != self.path: | 46 #if self.spath != self.path: |
46 # os.mkdir(self.spath) | 47 # os.mkdir(self.spath) |
48 requirements = ("revlogv1",) | |
49 reqfile = self.opener("requires", "w") | |
50 for r in requirements: | |
51 reqfile.write("%s\n" % r) | |
52 reqfile.close() | |
47 else: | 53 else: |
48 raise repo.RepoError(_("repository %s not found") % path) | 54 raise repo.RepoError(_("repository %s not found") % path) |
49 elif create: | 55 elif create: |
50 raise repo.RepoError(_("repository %s already exists") % path) | 56 raise repo.RepoError(_("repository %s already exists") % path) |
57 else: | |
58 # find requirements | |
59 try: | |
60 requirements = self.opener("requires").read().splitlines() | |
61 except IOError, inst: | |
62 if inst.errno != errno.ENOENT: | |
63 raise | |
64 requirements = [] | |
65 # check them | |
66 for r in requirements: | |
67 if r not in self.supported: | |
68 raise repo.RepoError(_("requirement '%s' not supported") % r) | |
51 | 69 |
52 # setup store | 70 # setup store |
53 self.spath = self.path | 71 self.spath = self.path |
54 self.sopener = util.opener(self.spath) | 72 self.sopener = util.opener(self.spath) |
55 | 73 |