Mercurial > public > mercurial-scm > hg-stable
diff 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 |
line wrap: on
line diff
--- a/mercurial/localrepo.py Sun Dec 10 00:07:02 2006 +0100 +++ b/mercurial/localrepo.py Fri Dec 01 13:34:09 2006 +0100 @@ -16,7 +16,7 @@ class localrepository(repo.repository): capabilities = ('lookup', 'changegroupsubset') - supported = ('revlogv1',) + supported = ('revlogv1', 'store') def __del__(self): self.transhandle = None @@ -43,13 +43,14 @@ if not os.path.exists(path): os.mkdir(path) os.mkdir(self.path) - #if self.spath != self.path: - # os.mkdir(self.spath) - requirements = ("revlogv1",) + os.mkdir(os.path.join(self.path, "store")) + requirements = ("revlogv1", "store") reqfile = self.opener("requires", "w") for r in requirements: reqfile.write("%s\n" % r) reqfile.close() + # create an invalid changelog + self.opener("00changelog.i", "a").write('\0\0\0\2') else: raise repo.RepoError(_("repository %s not found") % path) elif create: @@ -68,8 +69,15 @@ raise repo.RepoError(_("requirement '%s' not supported") % r) # setup store - self.spath = self.path - self.sopener = util.opener(self.spath) + if "store" in requirements: + self.encodefn = util.encodefilename + self.decodefn = util.decodefilename + self.spath = os.path.join(self.path, "store") + else: + self.encodefn = lambda x: x + self.decodefn = lambda x: x + self.spath = self.path + self.sopener = util.encodedopener(util.opener(self.spath), self.encodefn) self.ui = ui.ui(parentui=parentui) try: @@ -420,6 +428,7 @@ return os.path.join(self.path, f) def sjoin(self, f): + f = self.encodefn(f) return os.path.join(self.spath, f) def wjoin(self, f):