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.