comparison mercurial/localrepo.py @ 39546:41aa5dced975

localrepo: pass ui to newreporequirements() (API) newreporequirements() is called as part of creating a new repository. It doesn't make much sense for it to receive a repo instance as part of determining what requirements for new repos should be. .. api:: localrepo.newreporequirements() receives a ui instead of a repo Differential Revision: https://phab.mercurial-scm.org/D4533
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 07 Sep 2018 15:57:55 -0700
parents b66ea3fc3a86
children 7ce9dea3a14a
comparison
equal deleted inserted replaced
39545:4afd2af36456 39546:41aa5dced975
474 if engine.revlogheader(): 474 if engine.revlogheader():
475 self.supported.add('exp-compression-%s' % name) 475 self.supported.add('exp-compression-%s' % name)
476 476
477 if not self.vfs.isdir(): 477 if not self.vfs.isdir():
478 if create: 478 if create:
479 self.requirements = newreporequirements(self) 479 self.requirements = newreporequirements(self.ui)
480 480
481 if not self.wvfs.exists(): 481 if not self.wvfs.exists():
482 self.wvfs.makedirs() 482 self.wvfs.makedirs()
483 self.vfs.makedir(notindexed=True) 483 self.vfs.makedir(notindexed=True)
484 484
2400 intents=intents) 2400 intents=intents)
2401 2401
2402 def islocal(path): 2402 def islocal(path):
2403 return True 2403 return True
2404 2404
2405 def newreporequirements(repo): 2405 def newreporequirements(ui):
2406 """Determine the set of requirements for a new local repository. 2406 """Determine the set of requirements for a new local repository.
2407 2407
2408 Extensions can wrap this function to specify custom requirements for 2408 Extensions can wrap this function to specify custom requirements for
2409 new repositories. 2409 new repositories.
2410 """ 2410 """
2411 ui = repo.ui
2412 requirements = {'revlogv1'} 2411 requirements = {'revlogv1'}
2413 if ui.configbool('format', 'usestore'): 2412 if ui.configbool('format', 'usestore'):
2414 requirements.add('store') 2413 requirements.add('store')
2415 if ui.configbool('format', 'usefncache'): 2414 if ui.configbool('format', 'usefncache'):
2416 requirements.add('fncache') 2415 requirements.add('fncache')
2442 requirements.remove('revlogv1') 2441 requirements.remove('revlogv1')
2443 # generaldelta is implied by revlogv2. 2442 # generaldelta is implied by revlogv2.
2444 requirements.discard('generaldelta') 2443 requirements.discard('generaldelta')
2445 requirements.add(REVLOGV2_REQUIREMENT) 2444 requirements.add(REVLOGV2_REQUIREMENT)
2446 # experimental config: format.internal-phase 2445 # experimental config: format.internal-phase
2447 if repo.ui.configbool('format', 'internal-phase'): 2446 if ui.configbool('format', 'internal-phase'):
2448 requirements.add('internal-phase') 2447 requirements.add('internal-phase')
2449 2448
2450 return requirements 2449 return requirements