[PATCH 2 of 3] localrepo: isolate requirements determination from side effects
Gregory Szorc
gregory.szorc at gmail.com
Mon Feb 15 21:32:32 UTC 2016
# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1455571147 28800
# Mon Feb 15 13:19:07 2016 -0800
# Node ID 87d2d6947b2f47d6812151ce667918804876d077
# Parent b99ef6ae4d4407bbed0dbc9074b46fd661604ae6
localrepo: isolate requirements determination from side effects
In preparation for moving requirements determination to its own
function.
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -277,41 +277,46 @@ class localrepository(object):
for setupfunc in self.featuresetupfuncs:
if setupfunc.__module__ in extmods:
setupfunc(self.ui, self.supported)
else:
self.supported = self._basesupported
if not self.vfs.isdir():
if create:
- if not self.wvfs.exists():
- self.wvfs.makedirs()
- self.vfs.makedir(notindexed=True)
requirements = set(self._baserequirements(create))
if self.ui.configbool('format', 'usestore', True):
- self.vfs.mkdir("store")
requirements.add("store")
if self.ui.configbool('format', 'usefncache', True):
requirements.add("fncache")
if self.ui.configbool('format', 'dotencode', True):
requirements.add('dotencode')
- # create an invalid changelog
- self.vfs.append(
- "00changelog.i",
- '\0\0\0\2' # represents revlogv2
- ' dummy changelog to prevent using the old repo layout'
- )
+
if scmutil.gdinitconfig(self.ui):
requirements.add("generaldelta")
if self.ui.configbool('experimental', 'treemanifest', False):
requirements.add("treemanifest")
if self.ui.configbool('experimental', 'manifestv2', False):
requirements.add("manifestv2")
self.requirements = requirements
+
+ if not self.wvfs.exists():
+ self.wvfs.makedirs()
+ self.vfs.makedir(notindexed=True)
+
+ if 'store' in requirements:
+ self.vfs.mkdir("store")
+
+ # create an invalid changelog
+ self.vfs.append(
+ "00changelog.i",
+ '\0\0\0\2' # represents revlogv2
+ ' dummy changelog to prevent using the old repo layout'
+ )
else:
raise error.RepoError(_("repository %s not found") % path)
elif create:
raise error.RepoError(_("repository %s already exists") % path)
else:
try:
self.requirements = scmutil.readrequires(
self.vfs, self.supported)
More information about the Mercurial-devel
mailing list