mercurial/localrepo.py
changeset 3851 8f18e31c4441
parent 3850 a4457828ca1a
child 3853 c0b449154a90
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