885 def gathersupportedrequirements(ui): |
885 def gathersupportedrequirements(ui): |
886 """Determine the complete set of recognized requirements.""" |
886 """Determine the complete set of recognized requirements.""" |
887 # Start with all requirements supported by this file. |
887 # Start with all requirements supported by this file. |
888 supported = set(localrepository._basesupported) |
888 supported = set(localrepository._basesupported) |
889 |
889 |
|
890 if dirstate.SUPPORTS_DIRSTATE_V2: |
|
891 supported.add(requirementsmod.DIRSTATE_V2_REQUIREMENT) |
|
892 |
890 # Execute ``featuresetupfuncs`` entries if they belong to an extension |
893 # Execute ``featuresetupfuncs`` entries if they belong to an extension |
891 # relevant to this ui instance. |
894 # relevant to this ui instance. |
892 modules = {m.__name__ for n, m in extensions.extensions(ui)} |
895 modules = {m.__name__ for n, m in extensions.extensions(ui)} |
893 |
896 |
894 for fn in featuresetupfuncs: |
897 for fn in featuresetupfuncs: |
3525 if scmutil.gdinitconfig(ui): |
3528 if scmutil.gdinitconfig(ui): |
3526 requirements.add(requirementsmod.GENERALDELTA_REQUIREMENT) |
3529 requirements.add(requirementsmod.GENERALDELTA_REQUIREMENT) |
3527 if ui.configbool(b'format', b'sparse-revlog'): |
3530 if ui.configbool(b'format', b'sparse-revlog'): |
3528 requirements.add(requirementsmod.SPARSEREVLOG_REQUIREMENT) |
3531 requirements.add(requirementsmod.SPARSEREVLOG_REQUIREMENT) |
3529 |
3532 |
|
3533 # experimental config: format.exp-dirstate-v2 |
|
3534 if ui.configbool(b'format', b'exp-dirstate-v2'): |
|
3535 if dirstate.SUPPORTS_DIRSTATE_V2: |
|
3536 requirements.add(requirementsmod.DIRSTATE_V2_REQUIREMENT) |
|
3537 else: |
|
3538 raise error.Abort( |
|
3539 _( |
|
3540 b"dirstate v2 format requested by config " |
|
3541 b"but not supported (requires Rust extensions)" |
|
3542 ) |
|
3543 ) |
|
3544 |
3530 # experimental config: format.exp-use-copies-side-data-changeset |
3545 # experimental config: format.exp-use-copies-side-data-changeset |
3531 if ui.configbool(b'format', b'exp-use-copies-side-data-changeset'): |
3546 if ui.configbool(b'format', b'exp-use-copies-side-data-changeset'): |
3532 requirements.add(requirementsmod.CHANGELOGV2_REQUIREMENT) |
3547 requirements.add(requirementsmod.CHANGELOGV2_REQUIREMENT) |
3533 requirements.add(requirementsmod.COPIESSDC_REQUIREMENT) |
3548 requirements.add(requirementsmod.COPIESSDC_REQUIREMENT) |
3534 if ui.configbool(b'experimental', b'treemanifest'): |
3549 if ui.configbool(b'experimental', b'treemanifest'): |