Mercurial > public > mercurial-scm > hg
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: |