mercurial/localrepo.py
changeset 32697 19b9fc40cc51
parent 32660 a722c8e17363
child 32729 c8177792fef6
equal deleted inserted replaced
32696:0c09afdf5704 32697:19b9fc40cc51
   242         return changegroup.changegroup(self._repo, basenodes, source)
   242         return changegroup.changegroup(self._repo, basenodes, source)
   243 
   243 
   244     def changegroupsubset(self, bases, heads, source):
   244     def changegroupsubset(self, bases, heads, source):
   245         return changegroup.changegroupsubset(self._repo, bases, heads, source)
   245         return changegroup.changegroupsubset(self._repo, bases, heads, source)
   246 
   246 
       
   247 # Increment the sub-version when the revlog v2 format changes to lock out old
       
   248 # clients.
       
   249 REVLOGV2_REQUIREMENT = 'exp-revlogv2.0'
       
   250 
   247 class localrepository(object):
   251 class localrepository(object):
   248 
   252 
   249     supportedformats = {
   253     supportedformats = {
   250         'revlogv1',
   254         'revlogv1',
   251         'generaldelta',
   255         'generaldelta',
   252         'treemanifest',
   256         'treemanifest',
   253         'manifestv2',
   257         'manifestv2',
       
   258         REVLOGV2_REQUIREMENT,
   254     }
   259     }
   255     _basesupported = supportedformats | {
   260     _basesupported = supportedformats | {
   256         'store',
   261         'store',
   257         'fncache',
   262         'fncache',
   258         'shared',
   263         'shared',
   437         self.svfs.options['lazydeltabase'] = not scmutil.gddeltaconfig(self.ui)
   442         self.svfs.options['lazydeltabase'] = not scmutil.gddeltaconfig(self.ui)
   438 
   443 
   439         for r in self.requirements:
   444         for r in self.requirements:
   440             if r.startswith('exp-compression-'):
   445             if r.startswith('exp-compression-'):
   441                 self.svfs.options['compengine'] = r[len('exp-compression-'):]
   446                 self.svfs.options['compengine'] = r[len('exp-compression-'):]
       
   447 
       
   448         # TODO move "revlogv2" to openerreqs once finalized.
       
   449         if REVLOGV2_REQUIREMENT in self.requirements:
       
   450             self.svfs.options['revlogv2'] = True
   442 
   451 
   443     def _writerequirements(self):
   452     def _writerequirements(self):
   444         scmutil.writerequires(self.vfs, self.requirements)
   453         scmutil.writerequires(self.vfs, self.requirements)
   445 
   454 
   446     def _checknested(self, path):
   455     def _checknested(self, path):
  2068     if ui.configbool('experimental', 'treemanifest', False):
  2077     if ui.configbool('experimental', 'treemanifest', False):
  2069         requirements.add('treemanifest')
  2078         requirements.add('treemanifest')
  2070     if ui.configbool('experimental', 'manifestv2', False):
  2079     if ui.configbool('experimental', 'manifestv2', False):
  2071         requirements.add('manifestv2')
  2080         requirements.add('manifestv2')
  2072 
  2081 
       
  2082     revlogv2 = ui.config('experimental', 'revlogv2')
       
  2083     if revlogv2 == 'enable-unstable-format-and-corrupt-my-data':
       
  2084         requirements.remove('revlogv1')
       
  2085         # generaldelta is implied by revlogv2.
       
  2086         requirements.discard('generaldelta')
       
  2087         requirements.add(REVLOGV2_REQUIREMENT)
       
  2088 
  2073     return requirements
  2089     return requirements