Mercurial > public > mercurial-scm > hg
comparison mercurial/localrepo.py @ 14333:31a5973fcf96
revlog: get rid of defversion
defversion was a property (later option) on the store opener, used to propagate
the changelog revlog format to the other revlogs, so they would be created with
the same format.
This required that the changelog instance was created before any other revlog;
an invariant that wasn't directly enforced (or documented) anywhere.
We now use the revlogv1 requirement instead, which is transfered to the store
opener options. If this option is missing, v0 revlogs are created.
author | Sune Foldager <cryo@cyanite.org> |
---|---|
date | Mon, 16 May 2011 12:44:34 +0200 |
parents | 01472f8f5429 |
children | 82f3b0f3f0a5 |
comparison
equal
deleted
inserted
replaced
14332:a2f0f61a6988 | 14333:31a5973fcf96 |
---|---|
114 self._datafilters = {} | 114 self._datafilters = {} |
115 self._transref = self._lockref = self._wlockref = None | 115 self._transref = self._lockref = self._wlockref = None |
116 | 116 |
117 def _applyrequirements(self, requirements): | 117 def _applyrequirements(self, requirements): |
118 self.requirements = requirements | 118 self.requirements = requirements |
119 self.sopener.options = {} | 119 openerreqs = set(('revlogv1', 'generaldelta')) |
120 if 'generaldelta' in requirements: | 120 self.sopener.options = dict((r, 1) for r in requirements |
121 self.sopener.options['generaldelta'] = 1 | 121 if r in openerreqs) |
122 | 122 |
123 def _writerequirements(self): | 123 def _writerequirements(self): |
124 reqfile = self.opener("requires", "w") | 124 reqfile = self.opener("requires", "w") |
125 for r in self.requirements: | 125 for r in self.requirements: |
126 reqfile.write("%s\n" % r) | 126 reqfile.write("%s\n" % r) |
176 c = changelog.changelog(self.sopener) | 176 c = changelog.changelog(self.sopener) |
177 if 'HG_PENDING' in os.environ: | 177 if 'HG_PENDING' in os.environ: |
178 p = os.environ['HG_PENDING'] | 178 p = os.environ['HG_PENDING'] |
179 if p.startswith(self.root): | 179 if p.startswith(self.root): |
180 c.readpending('00changelog.i.a') | 180 c.readpending('00changelog.i.a') |
181 self.sopener.options['defversion'] = c.version | |
182 return c | 181 return c |
183 | 182 |
184 @propertycache | 183 @propertycache |
185 def manifest(self): | 184 def manifest(self): |
186 return manifest.manifest(self.sopener) | 185 return manifest.manifest(self.sopener) |