mercurial/localrepo.py
changeset 48684 568f63b5a30f
parent 48681 e845537f6adb
child 48771 79a967128055
equal deleted inserted replaced
48683:111f5a0cbcaa 48684:568f63b5a30f
  1276 
  1276 
  1277     _basesupported = {
  1277     _basesupported = {
  1278         requirementsmod.BOOKMARKS_IN_STORE_REQUIREMENT,
  1278         requirementsmod.BOOKMARKS_IN_STORE_REQUIREMENT,
  1279         requirementsmod.CHANGELOGV2_REQUIREMENT,
  1279         requirementsmod.CHANGELOGV2_REQUIREMENT,
  1280         requirementsmod.COPIESSDC_REQUIREMENT,
  1280         requirementsmod.COPIESSDC_REQUIREMENT,
       
  1281         requirementsmod.DIRSTATE_TRACKED_KEY_V1,
  1281         requirementsmod.DIRSTATE_V2_REQUIREMENT,
  1282         requirementsmod.DIRSTATE_V2_REQUIREMENT,
  1282         requirementsmod.DOTENCODE_REQUIREMENT,
  1283         requirementsmod.DOTENCODE_REQUIREMENT,
  1283         requirementsmod.FNCACHE_REQUIREMENT,
  1284         requirementsmod.FNCACHE_REQUIREMENT,
  1284         requirementsmod.GENERALDELTA_REQUIREMENT,
  1285         requirementsmod.GENERALDELTA_REQUIREMENT,
  1285         requirementsmod.INTERNAL_PHASE_REQUIREMENT,
  1286         requirementsmod.INTERNAL_PHASE_REQUIREMENT,
  1740 
  1741 
  1741     def _makedirstate(self):
  1742     def _makedirstate(self):
  1742         """Extension point for wrapping the dirstate per-repo."""
  1743         """Extension point for wrapping the dirstate per-repo."""
  1743         sparsematchfn = lambda: sparse.matcher(self)
  1744         sparsematchfn = lambda: sparse.matcher(self)
  1744         v2_req = requirementsmod.DIRSTATE_V2_REQUIREMENT
  1745         v2_req = requirementsmod.DIRSTATE_V2_REQUIREMENT
       
  1746         tk = requirementsmod.DIRSTATE_TRACKED_KEY_V1
  1745         use_dirstate_v2 = v2_req in self.requirements
  1747         use_dirstate_v2 = v2_req in self.requirements
       
  1748         use_tracked_key = tk in self.requirements
  1746 
  1749 
  1747         return dirstate.dirstate(
  1750         return dirstate.dirstate(
  1748             self.vfs,
  1751             self.vfs,
  1749             self.ui,
  1752             self.ui,
  1750             self.root,
  1753             self.root,
  1751             self._dirstatevalidate,
  1754             self._dirstatevalidate,
  1752             sparsematchfn,
  1755             sparsematchfn,
  1753             self.nodeconstants,
  1756             self.nodeconstants,
  1754             use_dirstate_v2,
  1757             use_dirstate_v2,
       
  1758             use_tracked_key=use_tracked_key,
  1755         )
  1759         )
  1756 
  1760 
  1757     def _dirstatevalidate(self, node):
  1761     def _dirstatevalidate(self, node):
  1758         try:
  1762         try:
  1759             self.changelog.rev(node)
  1763             self.changelog.rev(node)
  3689         if createopts.get(b'sharedrelative'):
  3693         if createopts.get(b'sharedrelative'):
  3690             requirements.add(requirementsmod.RELATIVE_SHARED_REQUIREMENT)
  3694             requirements.add(requirementsmod.RELATIVE_SHARED_REQUIREMENT)
  3691         else:
  3695         else:
  3692             requirements.add(requirementsmod.SHARED_REQUIREMENT)
  3696             requirements.add(requirementsmod.SHARED_REQUIREMENT)
  3693 
  3697 
       
  3698     tracked_key = ui.configint(b'format', b'exp-dirstate-tracked-key-version')
       
  3699     if tracked_key:
       
  3700         if tracked_key != 1:
       
  3701             msg = _("ignoring unknown tracked key version: %d\n")
       
  3702             hint = _(
       
  3703                 "see `hg help config.format.exp-dirstate-tracked-key-version"
       
  3704             )
       
  3705             ui.warn(msg % tracked_key, hint=hint)
       
  3706         else:
       
  3707             requirements.add(requirementsmod.DIRSTATE_TRACKED_KEY_V1)
       
  3708 
  3694     return requirements
  3709     return requirements
  3695 
  3710 
  3696 
  3711 
  3697 def checkrequirementscompat(ui, requirements):
  3712 def checkrequirementscompat(ui, requirements):
  3698     """Checks compatibility of repository requirements enabled and disabled.
  3713     """Checks compatibility of repository requirements enabled and disabled.