mercurial/localrepo.py
changeset 14270 d6907a5674a2
parent 14232 df2399663392
child 14274 01472f8f5429
equal deleted inserted replaced
14269:66257848c154 14270:d6907a5674a2
    19 propertycache = util.propertycache
    19 propertycache = util.propertycache
    20 
    20 
    21 class localrepository(repo.repository):
    21 class localrepository(repo.repository):
    22     capabilities = set(('lookup', 'changegroupsubset', 'branchmap', 'pushkey',
    22     capabilities = set(('lookup', 'changegroupsubset', 'branchmap', 'pushkey',
    23                         'known', 'getbundle'))
    23                         'known', 'getbundle'))
    24     supportedformats = set(('revlogv1',))
    24     supportedformats = set(('revlogv1', 'generaldelta'))
    25     supported = supportedformats | set(('store', 'fncache', 'shared',
    25     supported = supportedformats | set(('store', 'fncache', 'shared',
    26                                         'dotencode'))
    26                                         'dotencode'))
    27 
    27 
    28     def __init__(self, baseui, path=None, create=0):
    28     def __init__(self, baseui, path=None, create=0):
    29         repo.repository.__init__(self)
    29         repo.repository.__init__(self)
    59                     self.opener.append(
    59                     self.opener.append(
    60                         "00changelog.i",
    60                         "00changelog.i",
    61                         '\0\0\0\2' # represents revlogv2
    61                         '\0\0\0\2' # represents revlogv2
    62                         ' dummy changelog to prevent using the old repo layout'
    62                         ' dummy changelog to prevent using the old repo layout'
    63                     )
    63                     )
       
    64                 if self.ui.configbool('format', 'generaldelta', False):
       
    65                     requirements.append("generaldelta")
    64             else:
    66             else:
    65                 raise error.RepoError(_("repository %s not found") % path)
    67                 raise error.RepoError(_("repository %s not found") % path)
    66         elif create:
    68         elif create:
    67             raise error.RepoError(_("repository %s already exists") % path)
    69             raise error.RepoError(_("repository %s already exists") % path)
    68         else:
    70         else:
   113         self._transref = self._lockref = self._wlockref = None
   115         self._transref = self._lockref = self._wlockref = None
   114 
   116 
   115     def _applyrequirements(self, requirements):
   117     def _applyrequirements(self, requirements):
   116         self.requirements = requirements
   118         self.requirements = requirements
   117         self.sopener.options = {}
   119         self.sopener.options = {}
       
   120         if 'generaldelta' in requirements:
       
   121             self.sopener.options['generaldelta'] = 1
   118 
   122 
   119     def _writerequirements(self):
   123     def _writerequirements(self):
   120         reqfile = self.opener("requires", "w")
   124         reqfile = self.opener("requires", "w")
   121         for r in self.requirements:
   125         for r in self.requirements:
   122             reqfile.write("%s\n" % r)
   126             reqfile.write("%s\n" % r)