Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/localrepo.py @ 36404:0147a4730420
cleanup: say goodbye to manifestv2 format
This experiment was a bust: we'd hoped for smaller repository sizes,
but things got larger. Google ended up rolling out tree manifests in a
format that's compatible with the original manifest format, and I
believe Facebook is doing the same. This code was never implemented as
native speedups, so I'm pretty comfortable saying nobody is using the
experimental feature. Let's rip it out.
I noticed this code still kicking around because I was investigating a
repo corruption issue for timeless.
.. bc::
Support for the experimental manifestv2 format has been removed, as
it was never completed and failed to meet expectations.
Differential Revision: https://phab.mercurial-scm.org/D2393
author | Augie Fackler <augie@google.com> |
---|---|
date | Thu, 22 Feb 2018 20:04:42 -0500 |
parents | 646002338365 |
children | 7b86aa31b004 |
comparison
equal
deleted
inserted
replaced
36403:b8d0761a85c7 | 36404:0147a4730420 |
---|---|
301 # clients. | 301 # clients. |
302 REVLOGV2_REQUIREMENT = 'exp-revlogv2.0' | 302 REVLOGV2_REQUIREMENT = 'exp-revlogv2.0' |
303 | 303 |
304 class localrepository(object): | 304 class localrepository(object): |
305 | 305 |
306 # obsolete experimental requirements: | |
307 # - manifestv2: An experimental new manifest format that allowed | |
308 # for stem compression of long paths. Experiment ended up not | |
309 # being successful (repository sizes went up due to worse delta | |
310 # chains), and the code was deleted in 4.6. | |
306 supportedformats = { | 311 supportedformats = { |
307 'revlogv1', | 312 'revlogv1', |
308 'generaldelta', | 313 'generaldelta', |
309 'treemanifest', | 314 'treemanifest', |
310 'manifestv2', | |
311 REVLOGV2_REQUIREMENT, | 315 REVLOGV2_REQUIREMENT, |
312 } | 316 } |
313 _basesupported = supportedformats | { | 317 _basesupported = supportedformats | { |
314 'store', | 318 'store', |
315 'fncache', | 319 'fncache', |
320 } | 324 } |
321 openerreqs = { | 325 openerreqs = { |
322 'revlogv1', | 326 'revlogv1', |
323 'generaldelta', | 327 'generaldelta', |
324 'treemanifest', | 328 'treemanifest', |
325 'manifestv2', | |
326 } | 329 } |
327 | 330 |
328 # a list of (ui, featureset) functions. | 331 # a list of (ui, featureset) functions. |
329 # only functions defined in module of enabled extensions are invoked | 332 # only functions defined in module of enabled extensions are invoked |
330 featuresetupfuncs = set() | 333 featuresetupfuncs = set() |
2259 | 2262 |
2260 if scmutil.gdinitconfig(ui): | 2263 if scmutil.gdinitconfig(ui): |
2261 requirements.add('generaldelta') | 2264 requirements.add('generaldelta') |
2262 if ui.configbool('experimental', 'treemanifest'): | 2265 if ui.configbool('experimental', 'treemanifest'): |
2263 requirements.add('treemanifest') | 2266 requirements.add('treemanifest') |
2264 if ui.configbool('experimental', 'manifestv2'): | |
2265 requirements.add('manifestv2') | |
2266 | 2267 |
2267 revlogv2 = ui.config('experimental', 'revlogv2') | 2268 revlogv2 = ui.config('experimental', 'revlogv2') |
2268 if revlogv2 == 'enable-unstable-format-and-corrupt-my-data': | 2269 if revlogv2 == 'enable-unstable-format-and-corrupt-my-data': |
2269 requirements.remove('revlogv1') | 2270 requirements.remove('revlogv1') |
2270 # generaldelta is implied by revlogv2. | 2271 # generaldelta is implied by revlogv2. |