##// END OF EJS Templates
localrepo: factor out requirement application and write
Sune Foldager -
r12295:3388ab21 default
parent child Browse files
Show More
@@ -21,7 +21,8 b' propertycache = util.propertycache'
21
21
22 class localrepository(repo.repository):
22 class localrepository(repo.repository):
23 capabilities = set(('lookup', 'changegroupsubset', 'branchmap', 'pushkey'))
23 capabilities = set(('lookup', 'changegroupsubset', 'branchmap', 'pushkey'))
24 supported = set('revlogv1 store fncache shared parentdelta'.split())
24 supportedformats = set(('revlogv1', 'parentdelta'))
25 supported = supportedformats | set(('store', 'fncache', 'shared'))
25
26
26 def __init__(self, baseui, path=None, create=0):
27 def __init__(self, baseui, path=None, create=0):
27 repo.repository.__init__(self)
28 repo.repository.__init__(self)
@@ -58,10 +59,6 b' class localrepository(repo.repository):'
58 )
59 )
59 if self.ui.configbool('format', 'parentdelta', False):
60 if self.ui.configbool('format', 'parentdelta', False):
60 requirements.append("parentdelta")
61 requirements.append("parentdelta")
61 reqfile = self.opener("requires", "w")
62 for r in requirements:
63 reqfile.write("%s\n" % r)
64 reqfile.close()
65 else:
62 else:
66 raise error.RepoError(_("repository %s not found") % path)
63 raise error.RepoError(_("repository %s not found") % path)
67 elif create:
64 elif create:
@@ -93,9 +90,9 b' class localrepository(repo.repository):'
93 self.sopener = self.store.opener
90 self.sopener = self.store.opener
94 self.sjoin = self.store.join
91 self.sjoin = self.store.join
95 self.opener.createmode = self.store.createmode
92 self.opener.createmode = self.store.createmode
96 self.sopener.options = {}
93 self._applyrequirements(requirements)
97 if 'parentdelta' in requirements:
94 if create:
98 self.sopener.options['parentdelta'] = 1
95 self._writerequirements()
99
96
100 # These two define the set of tags for this repository. _tags
97 # These two define the set of tags for this repository. _tags
101 # maps tag name to node; _tagtypes maps tag name to 'global' or
98 # maps tag name to node; _tagtypes maps tag name to 'global' or
@@ -112,6 +109,18 b' class localrepository(repo.repository):'
112 self._datafilters = {}
109 self._datafilters = {}
113 self._transref = self._lockref = self._wlockref = None
110 self._transref = self._lockref = self._wlockref = None
114
111
112 def _applyrequirements(self, requirements):
113 self.requirements = requirements
114 self.sopener.options = {}
115 if 'parentdelta' in requirements:
116 self.sopener.options['parentdelta'] = 1
117
118 def _writerequirements(self):
119 reqfile = self.opener("requires", "w")
120 for r in self.requirements:
121 reqfile.write("%s\n" % r)
122 reqfile.close()
123
115 def _checknested(self, path):
124 def _checknested(self, path):
116 """Determine if path is a legal nested repository."""
125 """Determine if path is a legal nested repository."""
117 if not path.startswith(self.root):
126 if not path.startswith(self.root):
General Comments 0
You need to be logged in to leave comments. Login now