comparison mercurial/localrepo.py @ 28163:5d3495e394d5

localrepo: isolate requirements determination from side effects In preparation for moving requirements determination to its own function.
author Gregory Szorc <gregory.szorc@gmail.com>
date Mon, 15 Feb 2016 13:19:07 -0800
parents 3784d9eb7245
children ad11edefa7c4
comparison
equal deleted inserted replaced
28162:3784d9eb7245 28163:5d3495e394d5
280 else: 280 else:
281 self.supported = self._basesupported 281 self.supported = self._basesupported
282 282
283 if not self.vfs.isdir(): 283 if not self.vfs.isdir():
284 if create: 284 if create:
285 if not self.wvfs.exists():
286 self.wvfs.makedirs()
287 self.vfs.makedir(notindexed=True)
288 requirements = set(self._baserequirements(create)) 285 requirements = set(self._baserequirements(create))
289 if self.ui.configbool('format', 'usestore', True): 286 if self.ui.configbool('format', 'usestore', True):
290 self.vfs.mkdir("store")
291 requirements.add("store") 287 requirements.add("store")
292 if self.ui.configbool('format', 'usefncache', True): 288 if self.ui.configbool('format', 'usefncache', True):
293 requirements.add("fncache") 289 requirements.add("fncache")
294 if self.ui.configbool('format', 'dotencode', True): 290 if self.ui.configbool('format', 'dotencode', True):
295 requirements.add('dotencode') 291 requirements.add('dotencode')
292
293 if scmutil.gdinitconfig(self.ui):
294 requirements.add("generaldelta")
295 if self.ui.configbool('experimental', 'treemanifest', False):
296 requirements.add("treemanifest")
297 if self.ui.configbool('experimental', 'manifestv2', False):
298 requirements.add("manifestv2")
299
300 self.requirements = requirements
301
302 if not self.wvfs.exists():
303 self.wvfs.makedirs()
304 self.vfs.makedir(notindexed=True)
305
306 if 'store' in requirements:
307 self.vfs.mkdir("store")
308
296 # create an invalid changelog 309 # create an invalid changelog
297 self.vfs.append( 310 self.vfs.append(
298 "00changelog.i", 311 "00changelog.i",
299 '\0\0\0\2' # represents revlogv2 312 '\0\0\0\2' # represents revlogv2
300 ' dummy changelog to prevent using the old repo layout' 313 ' dummy changelog to prevent using the old repo layout'
301 ) 314 )
302 if scmutil.gdinitconfig(self.ui):
303 requirements.add("generaldelta")
304 if self.ui.configbool('experimental', 'treemanifest', False):
305 requirements.add("treemanifest")
306 if self.ui.configbool('experimental', 'manifestv2', False):
307 requirements.add("manifestv2")
308
309 self.requirements = requirements
310 else: 315 else:
311 raise error.RepoError(_("repository %s not found") % path) 316 raise error.RepoError(_("repository %s not found") % path)
312 elif create: 317 elif create:
313 raise error.RepoError(_("repository %s already exists") % path) 318 raise error.RepoError(_("repository %s already exists") % path)
314 else: 319 else: