diff -r 2c34c9b61a4f -r c51b178b0b7e mercurial/configitems.py --- a/mercurial/configitems.py Mon Jan 23 17:11:42 2023 +0100 +++ b/mercurial/configitems.py Mon Jan 23 18:08:11 2023 +0100 @@ -9,11 +9,21 @@ import functools import re +from .utils import resourceutil + from . import ( encoding, error, ) +try: + import tomllib # pytype: disable=import-error + + tomllib.load # trigger lazy import +except ModuleNotFoundError: + # Python <3.11 compat + from .thirdparty import tomli as tomllib + def loadconfigtable(ui, extname, configtable): """update config item known to the ui with the extension ones""" @@ -104,6 +114,74 @@ return None +def sanitize_item(item): + """Apply the transformations that are encoded on top of the pure data""" + + # Set the special defaults + default_type_key = "default-type" + default_type = item.pop(default_type_key, None) + if default_type == "dynamic": + item["default"] = dynamicdefault + elif default_type == "list_type": + item["default"] = list + elif default_type == "lambda": + assert isinstance(item["default"], list) + default = [e.encode() for e in item["default"]] + item["default"] = lambda: default + elif default_type == "lazy_module": + item["default"] = lambda: encoding.encoding + else: + if default_type is not None: + msg = "invalid default config type %r for '%s.%s'" + msg %= (default_type, item["section"], item["name"]) + raise error.ProgrammingError(msg) + + # config expects bytes + alias = item.get("alias") + if alias: + item["alias"] = [(k.encode(), v.encode()) for (k, v) in alias] + if isinstance(item.get("default"), str): + item["default"] = item["default"].encode() + item["section"] = item["section"].encode() + item["name"] = item["name"].encode() + + +def read_configitems_file(): + """Returns the deserialized TOML structure from the configitems file""" + with resourceutil.open_resource(b"mercurial", b"configitems.toml") as fp: + return tomllib.load(fp) + + +def configitems_from_toml(items): + """Register the configitems from the *deserialized* toml file""" + for item in items["items"]: + sanitize_item(item) + coreconfigitem(**item) + + templates = items["templates"] + + for application in items["template-applications"]: + template_items = templates[application["template"]] + + for template_item in template_items: + item = template_item.copy() + prefix = application.get("prefix", "") + item["section"] = application["section"] + if prefix: + item["name"] = f'{prefix}.{item["suffix"]}' + else: + item["name"] = item["suffix"] + + sanitize_item(item) + item.pop("suffix", None) + coreconfigitem(**item) + + +def import_configitems_from_file(): + as_toml = read_configitems_file() + configitems_from_toml(as_toml) + + coreitems = {} @@ -131,2844 +209,4 @@ coreconfigitem = getitemregister(coreitems) - -def _registerdiffopts(section, configprefix=b''): - coreconfigitem( - section, - configprefix + b'nodates', - default=False, - ) - coreconfigitem( - section, - configprefix + b'showfunc', - default=False, - ) - coreconfigitem( - section, - configprefix + b'unified', - default=None, - ) - coreconfigitem( - section, - configprefix + b'git', - default=False, - ) - coreconfigitem( - section, - configprefix + b'ignorews', - default=False, - ) - coreconfigitem( - section, - configprefix + b'ignorewsamount', - default=False, - ) - coreconfigitem( - section, - configprefix + b'ignoreblanklines', - default=False, - ) - coreconfigitem( - section, - configprefix + b'ignorewseol', - default=False, - ) - coreconfigitem( - section, - configprefix + b'nobinary', - default=False, - ) - coreconfigitem( - section, - configprefix + b'noprefix', - default=False, - ) - coreconfigitem( - section, - configprefix + b'word-diff', - default=False, - ) - - -coreconfigitem( - b'alias', - b'.*', - default=dynamicdefault, - generic=True, -) -coreconfigitem( - b'auth', - b'cookiefile', - default=None, -) -_registerdiffopts(section=b'annotate') -# bookmarks.pushing: internal hack for discovery -coreconfigitem( - b'bookmarks', - b'pushing', - default=list, -) -# bundle.mainreporoot: internal hack for bundlerepo -coreconfigitem( - b'bundle', - b'mainreporoot', - default=b'', -) -coreconfigitem( - b'censor', - b'policy', - default=b'abort', - experimental=True, -) -coreconfigitem( - b'chgserver', - b'idletimeout', - default=3600, -) -coreconfigitem( - b'chgserver', - b'skiphash', - default=False, -) -coreconfigitem( - b'cmdserver', - b'log', - default=None, -) -coreconfigitem( - b'cmdserver', - b'max-log-files', - default=7, -) -coreconfigitem( - b'cmdserver', - b'max-log-size', - default=b'1 MB', -) -coreconfigitem( - b'cmdserver', - b'max-repo-cache', - default=0, - experimental=True, -) -coreconfigitem( - b'cmdserver', - b'message-encodings', - default=list, -) -coreconfigitem( - b'cmdserver', - b'track-log', - default=lambda: [b'chgserver', b'cmdserver', b'repocache'], -) -coreconfigitem( - b'cmdserver', - b'shutdown-on-interrupt', - default=True, -) -coreconfigitem( - b'color', - b'.*', - default=None, - generic=True, -) -coreconfigitem( - b'color', - b'mode', - default=b'auto', -) -coreconfigitem( - b'color', - b'pagermode', - default=dynamicdefault, -) -coreconfigitem( - b'command-templates', - b'graphnode', - default=None, - alias=[(b'ui', b'graphnodetemplate')], -) -coreconfigitem( - b'command-templates', - b'log', - default=None, - alias=[(b'ui', b'logtemplate')], -) -coreconfigitem( - b'command-templates', - b'mergemarker', - default=( - b'{node|short} ' - b'{ifeq(tags, "tip", "", ' - b'ifeq(tags, "", "", "{tags} "))}' - b'{if(bookmarks, "{bookmarks} ")}' - b'{ifeq(branch, "default", "", "{branch} ")}' - b'- {author|user}: {desc|firstline}' - ), - alias=[(b'ui', b'mergemarkertemplate')], -) -coreconfigitem( - b'command-templates', - b'pre-merge-tool-output', - default=None, - alias=[(b'ui', b'pre-merge-tool-output-template')], -) -coreconfigitem( - b'command-templates', - b'oneline-summary', - default=None, -) -coreconfigitem( - b'command-templates', - b'oneline-summary.*', - default=dynamicdefault, - generic=True, -) -_registerdiffopts(section=b'commands', configprefix=b'commit.interactive.') -coreconfigitem( - b'commands', - b'commit.post-status', - default=False, -) -coreconfigitem( - b'commands', - b'grep.all-files', - default=False, - experimental=True, -) -coreconfigitem( - b'commands', - b'merge.require-rev', - default=False, -) -coreconfigitem( - b'commands', - b'push.require-revs', - default=False, -) -coreconfigitem( - b'commands', - b'resolve.confirm', - default=False, -) -coreconfigitem( - b'commands', - b'resolve.explicit-re-merge', - default=False, -) -coreconfigitem( - b'commands', - b'resolve.mark-check', - default=b'none', -) -_registerdiffopts(section=b'commands', configprefix=b'revert.interactive.') -coreconfigitem( - b'commands', - b'show.aliasprefix', - default=list, -) -coreconfigitem( - b'commands', - b'status.relative', - default=False, -) -coreconfigitem( - b'commands', - b'status.skipstates', - default=[], - experimental=True, -) -coreconfigitem( - b'commands', - b'status.terse', - default=b'', -) -coreconfigitem( - b'commands', - b'status.verbose', - default=False, -) -coreconfigitem( - b'commands', - b'update.check', - default=None, -) -coreconfigitem( - b'commands', - b'update.requiredest', - default=False, -) -coreconfigitem( - b'committemplate', - b'.*', - default=None, - generic=True, -) -coreconfigitem( - b'convert', - b'bzr.saverev', - default=True, -) -coreconfigitem( - b'convert', - b'cvsps.cache', - default=True, -) -coreconfigitem( - b'convert', - b'cvsps.fuzz', - default=60, -) -coreconfigitem( - b'convert', - b'cvsps.logencoding', - default=None, -) -coreconfigitem( - b'convert', - b'cvsps.mergefrom', - default=None, -) -coreconfigitem( - b'convert', - b'cvsps.mergeto', - default=None, -) -coreconfigitem( - b'convert', - b'git.committeractions', - default=lambda: [b'messagedifferent'], -) -coreconfigitem( - b'convert', - b'git.extrakeys', - default=list, -) -coreconfigitem( - b'convert', - b'git.findcopiesharder', - default=False, -) -coreconfigitem( - b'convert', - b'git.remoteprefix', - default=b'remote', -) -coreconfigitem( - b'convert', - b'git.renamelimit', - default=400, -) -coreconfigitem( - b'convert', - b'git.saverev', - default=True, -) -coreconfigitem( - b'convert', - b'git.similarity', - default=50, -) -coreconfigitem( - b'convert', - b'git.skipsubmodules', - default=False, -) -coreconfigitem( - b'convert', - b'hg.clonebranches', - default=False, -) -coreconfigitem( - b'convert', - b'hg.ignoreerrors', - default=False, -) -coreconfigitem( - b'convert', - b'hg.preserve-hash', - default=False, -) -coreconfigitem( - b'convert', - b'hg.revs', - default=None, -) -coreconfigitem( - b'convert', - b'hg.saverev', - default=False, -) -coreconfigitem( - b'convert', - b'hg.sourcename', - default=None, -) -coreconfigitem( - b'convert', - b'hg.startrev', - default=None, -) -coreconfigitem( - b'convert', - b'hg.tagsbranch', - default=b'default', -) -coreconfigitem( - b'convert', - b'hg.usebranchnames', - default=True, -) -coreconfigitem( - b'convert', - b'ignoreancestorcheck', - default=False, - experimental=True, -) -coreconfigitem( - b'convert', - b'localtimezone', - default=False, -) -coreconfigitem( - b'convert', - b'p4.encoding', - default=dynamicdefault, -) -coreconfigitem( - b'convert', - b'p4.startrev', - default=0, -) -coreconfigitem( - b'convert', - b'skiptags', - default=False, -) -coreconfigitem( - b'convert', - b'svn.debugsvnlog', - default=True, -) -coreconfigitem( - b'convert', - b'svn.trunk', - default=None, -) -coreconfigitem( - b'convert', - b'svn.tags', - default=None, -) -coreconfigitem( - b'convert', - b'svn.branches', - default=None, -) -coreconfigitem( - b'convert', - b'svn.startrev', - default=0, -) -coreconfigitem( - b'convert', - b'svn.dangerous-set-commit-dates', - default=False, -) -coreconfigitem( - b'debug', - b'dirstate.delaywrite', - default=0, -) -coreconfigitem( - b'debug', - b'revlog.verifyposition.changelog', - default=b'', -) -coreconfigitem( - b'debug', - b'revlog.debug-delta', - default=False, -) -# display extra information about the bundling process -coreconfigitem( - b'debug', - b'bundling-stats', - default=False, -) -# display extra information about the unbundling process -coreconfigitem( - b'debug', - b'unbundling-stats', - default=False, -) -coreconfigitem( - b'defaults', - b'.*', - default=None, - generic=True, -) -coreconfigitem( - b'devel', - b'all-warnings', - default=False, -) -coreconfigitem( - b'devel', - b'bundle2.debug', - default=False, -) -# which kind of delta to put in the bundled changegroup. Possible value -# - '': use default behavior -# - p1: force to always use delta against p1 -# - full: force to always use full content -coreconfigitem( - b'devel', - b'bundle.delta', - default=b'', -) -coreconfigitem( - b'devel', - b'cache-vfs', - default=None, -) -coreconfigitem( - b'devel', - b'check-locks', - default=False, -) -coreconfigitem( - b'devel', - b'check-relroot', - default=False, -) -# Track copy information for all file, not just "added" one (very slow) -coreconfigitem( - b'devel', - b'copy-tracing.trace-all-files', - default=False, -) -coreconfigitem( - b'devel', - b'default-date', - default=None, -) -coreconfigitem( - b'devel', - b'deprec-warn', - default=False, -) -# possible values: -# - auto (the default) -# - force-append -# - force-new -coreconfigitem( - b'devel', - b'dirstate.v2.data_update_mode', - default="auto", -) -coreconfigitem( - b'devel', - b'disableloaddefaultcerts', - default=False, -) -coreconfigitem( - b'devel', - b'warn-empty-changegroup', - default=False, -) -coreconfigitem( - b'devel', - b'legacy.exchange', - default=list, -) -# When True, revlogs use a special reference version of the nodemap, that is not -# performant but is "known" to behave properly. -coreconfigitem( - b'devel', - b'persistent-nodemap', - default=False, -) -coreconfigitem( - b'devel', - b'servercafile', - default=b'', -) -# This config option is intended for use in tests only. It is a giant -# footgun to kill security. Don't define it. -coreconfigitem( - b'devel', - b'server-insecure-exact-protocol', - default=b'', -) -coreconfigitem( - b'devel', - b'serverrequirecert', - default=False, -) -# Makes the status algorithm wait for the existence of this file -# (or until a timeout of `devel.sync.status.pre-dirstate-write-file-timeout` -# seconds) before taking the lock and writing the dirstate. -# Status signals that it's ready to wait by creating a file -# with the same name + `.waiting`. -# Useful when testing race conditions. -coreconfigitem( - b'devel', - b'sync.status.pre-dirstate-write-file', - default=None, -) -coreconfigitem( - b'devel', - b'sync.status.pre-dirstate-write-file-timeout', - default=2, -) -coreconfigitem( - b'devel', - b'sync.dirstate.post-docket-read-file', - default=None, -) -coreconfigitem( - b'devel', - b'sync.dirstate.post-docket-read-file-timeout', - default=2, -) -coreconfigitem( - b'devel', - b'sync.dirstate.pre-read-file', - default=None, -) -coreconfigitem( - b'devel', - b'sync.dirstate.pre-read-file-timeout', - default=2, -) -coreconfigitem( - b'devel', - b'strip-obsmarkers', - default=True, -) -coreconfigitem( - b'devel', - b'warn-config', - default=None, -) -coreconfigitem( - b'devel', - b'warn-config-default', - default=None, -) -coreconfigitem( - b'devel', - b'user.obsmarker', - default=None, -) -coreconfigitem( - b'devel', - b'warn-config-unknown', - default=None, -) -coreconfigitem( - b'devel', - b'debug.copies', - default=False, -) -coreconfigitem( - b'devel', - b'copy-tracing.multi-thread', - default=True, -) -coreconfigitem( - b'devel', - b'debug.extensions', - default=False, -) -coreconfigitem( - b'devel', - b'debug.repo-filters', - default=False, -) -coreconfigitem( - b'devel', - b'debug.peer-request', - default=False, -) -# If discovery.exchange-heads is False, the discovery will not start with -# remote head fetching and local head querying. -coreconfigitem( - b'devel', - b'discovery.exchange-heads', - default=True, -) -# If devel.debug.abort-update is True, then any merge with the working copy, -# e.g. [hg update], will be aborted after figuring out what needs to be done, -# but before spawning the parallel worker -coreconfigitem( - b'devel', - b'debug.abort-update', - default=False, -) -# If discovery.grow-sample is False, the sample size used in set discovery will -# not be increased through the process -coreconfigitem( - b'devel', - b'discovery.grow-sample', - default=True, -) -# When discovery.grow-sample.dynamic is True, the default, the sample size is -# adapted to the shape of the undecided set (it is set to the max of: -# , len(roots(undecided)), len(heads(undecided) -coreconfigitem( - b'devel', - b'discovery.grow-sample.dynamic', - default=True, -) -# discovery.grow-sample.rate control the rate at which the sample grow -coreconfigitem( - b'devel', - b'discovery.grow-sample.rate', - default=1.05, -) -# If discovery.randomize is False, random sampling during discovery are -# deterministic. It is meant for integration tests. -coreconfigitem( - b'devel', - b'discovery.randomize', - default=True, -) -# Control the initial size of the discovery sample -coreconfigitem( - b'devel', - b'discovery.sample-size', - default=200, -) -# Control the initial size of the discovery for initial change -coreconfigitem( - b'devel', - b'discovery.sample-size.initial', - default=100, -) -_registerdiffopts(section=b'diff') -coreconfigitem( - b'diff', - b'merge', - default=False, - experimental=True, -) -coreconfigitem( - b'email', - b'bcc', - default=None, -) -coreconfigitem( - b'email', - b'cc', - default=None, -) -coreconfigitem( - b'email', - b'charsets', - default=list, -) -coreconfigitem( - b'email', - b'from', - default=None, -) -coreconfigitem( - b'email', - b'method', - default=b'smtp', -) -coreconfigitem( - b'email', - b'reply-to', - default=None, -) -coreconfigitem( - b'email', - b'to', - default=None, -) -coreconfigitem( - b'experimental', - b'archivemetatemplate', - default=dynamicdefault, -) -coreconfigitem( - b'experimental', - b'auto-publish', - default=b'publish', -) -coreconfigitem( - b'experimental', - b'bundle-phases', - default=False, -) -coreconfigitem( - b'experimental', - b'bundle2-advertise', - default=True, -) -coreconfigitem( - b'experimental', - b'bundle2-output-capture', - default=False, -) -coreconfigitem( - b'experimental', - b'bundle2.pushback', - default=False, -) -coreconfigitem( - b'experimental', - b'bundle2lazylocking', - default=False, -) -coreconfigitem( - b'experimental', - b'bundlecomplevel', - default=None, -) -coreconfigitem( - b'experimental', - b'bundlecomplevel.bzip2', - default=None, -) -coreconfigitem( - b'experimental', - b'bundlecomplevel.gzip', - default=None, -) -coreconfigitem( - b'experimental', - b'bundlecomplevel.none', - default=None, -) -coreconfigitem( - b'experimental', - b'bundlecomplevel.zstd', - default=None, -) -coreconfigitem( - b'experimental', - b'bundlecompthreads', - default=None, -) -coreconfigitem( - b'experimental', - b'bundlecompthreads.bzip2', - default=None, -) -coreconfigitem( - b'experimental', - b'bundlecompthreads.gzip', - default=None, -) -coreconfigitem( - b'experimental', - b'bundlecompthreads.none', - default=None, -) -coreconfigitem( - b'experimental', - b'bundlecompthreads.zstd', - default=None, -) -coreconfigitem( - b'experimental', - b'changegroup3', - default=True, -) -coreconfigitem( - b'experimental', - b'changegroup4', - default=False, -) - -# might remove rank configuration once the computation has no impact -coreconfigitem( - b'experimental', - b'changelog-v2.compute-rank', - default=True, -) -coreconfigitem( - b'experimental', - b'cleanup-as-archived', - default=False, -) -coreconfigitem( - b'experimental', - b'clientcompressionengines', - default=list, -) -coreconfigitem( - b'experimental', - b'copytrace', - default=b'on', -) -coreconfigitem( - b'experimental', - b'copytrace.movecandidateslimit', - default=100, -) -coreconfigitem( - b'experimental', - b'copytrace.sourcecommitlimit', - default=100, -) -coreconfigitem( - b'experimental', - b'copies.read-from', - default=b"filelog-only", -) -coreconfigitem( - b'experimental', - b'copies.write-to', - default=b'filelog-only', -) -coreconfigitem( - b'experimental', - b'crecordtest', - default=None, -) -coreconfigitem( - b'experimental', - b'directaccess', - default=False, -) -coreconfigitem( - b'experimental', - b'directaccess.revnums', - default=False, -) -coreconfigitem( - b'experimental', - b'editortmpinhg', - default=False, -) -coreconfigitem( - b'experimental', - b'evolution', - default=list, -) -coreconfigitem( - b'experimental', - b'evolution.allowdivergence', - default=False, - alias=[(b'experimental', b'allowdivergence')], -) -coreconfigitem( - b'experimental', - b'evolution.allowunstable', - default=None, -) -coreconfigitem( - b'experimental', - b'evolution.createmarkers', - default=None, -) -coreconfigitem( - b'experimental', - b'evolution.effect-flags', - default=True, - alias=[(b'experimental', b'effect-flags')], -) -coreconfigitem( - b'experimental', - b'evolution.exchange', - default=None, -) -coreconfigitem( - b'experimental', - b'evolution.bundle-obsmarker', - default=False, -) -coreconfigitem( - b'experimental', - b'evolution.bundle-obsmarker:mandatory', - default=True, -) -coreconfigitem( - b'experimental', - b'log.topo', - default=False, -) -coreconfigitem( - b'experimental', - b'evolution.report-instabilities', - default=True, -) -coreconfigitem( - b'experimental', - b'evolution.track-operation', - default=True, -) -# repo-level config to exclude a revset visibility -# -# The target use case is to use `share` to expose different subset of the same -# repository, especially server side. See also `server.view`. -coreconfigitem( - b'experimental', - b'extra-filter-revs', - default=None, -) -coreconfigitem( - b'experimental', - b'maxdeltachainspan', - default=-1, -) -# tracks files which were undeleted (merge might delete them but we explicitly -# kept/undeleted them) and creates new filenodes for them -coreconfigitem( - b'experimental', - b'merge-track-salvaged', - default=False, -) -coreconfigitem( - b'experimental', - b'mmapindexthreshold', - default=None, -) -coreconfigitem( - b'experimental', - b'narrow', - default=False, -) -coreconfigitem( - b'experimental', - b'nonnormalparanoidcheck', - default=False, -) -coreconfigitem( - b'experimental', - b'exportableenviron', - default=list, -) -coreconfigitem( - b'experimental', - b'extendedheader.index', - default=None, -) -coreconfigitem( - b'experimental', - b'extendedheader.similarity', - default=False, -) -coreconfigitem( - b'experimental', - b'graphshorten', - default=False, -) -coreconfigitem( - b'experimental', - b'graphstyle.parent', - default=dynamicdefault, -) -coreconfigitem( - b'experimental', - b'graphstyle.missing', - default=dynamicdefault, -) -coreconfigitem( - b'experimental', - b'graphstyle.grandparent', - default=dynamicdefault, -) -coreconfigitem( - b'experimental', - b'hook-track-tags', - default=False, -) -coreconfigitem( - b'experimental', - b'httppostargs', - default=False, -) -coreconfigitem(b'experimental', b'nointerrupt', default=False) -coreconfigitem(b'experimental', b'nointerrupt-interactiveonly', default=True) - -coreconfigitem( - b'experimental', - b'obsmarkers-exchange-debug', - default=False, -) -coreconfigitem( - b'experimental', - b'remotenames', - default=False, -) -coreconfigitem( - b'experimental', - b'removeemptydirs', - default=True, -) -coreconfigitem( - b'experimental', - b'revert.interactive.select-to-keep', - default=False, -) -coreconfigitem( - b'experimental', - b'revisions.prefixhexnode', - default=False, -) -# "out of experimental" todo list. -# -# * include management of a persistent nodemap in the main docket -# * enforce a "no-truncate" policy for mmap safety -# - for censoring operation -# - for stripping operation -# - for rollback operation -# * proper streaming (race free) of the docket file -# * track garbage data to evemtually allow rewriting -existing- sidedata. -# * Exchange-wise, we will also need to do something more efficient than -# keeping references to the affected revlogs, especially memory-wise when -# rewriting sidedata. -# * introduce a proper solution to reduce the number of filelog related files. -# * use caching for reading sidedata (similar to what we do for data). -# * no longer set offset=0 if sidedata_size=0 (simplify cutoff computation). -# * Improvement to consider -# - avoid compression header in chunk using the default compression? -# - forbid "inline" compression mode entirely? -# - split the data offset and flag field (the 2 bytes save are mostly trouble) -# - keep track of uncompressed -chunk- size (to preallocate memory better) -# - keep track of chain base or size (probably not that useful anymore) -coreconfigitem( - b'experimental', - b'revlogv2', - default=None, -) -coreconfigitem( - b'experimental', - b'revisions.disambiguatewithin', - default=None, -) -coreconfigitem( - b'experimental', - b'rust.index', - default=False, -) -coreconfigitem( - b'experimental', - b'server.allow-hidden-access', - default=list, -) -coreconfigitem( - b'experimental', - b'server.filesdata.recommended-batch-size', - default=50000, -) -coreconfigitem( - b'experimental', - b'server.manifestdata.recommended-batch-size', - default=100000, -) -coreconfigitem( - b'experimental', - b'server.stream-narrow-clones', - default=False, -) -coreconfigitem( - b'experimental', - b'single-head-per-branch', - default=False, -) -coreconfigitem( - b'experimental', - b'single-head-per-branch:account-closed-heads', - default=False, -) -coreconfigitem( - b'experimental', - b'single-head-per-branch:public-changes-only', - default=False, -) -coreconfigitem( - b'experimental', - b'sparse-read', - default=False, -) -coreconfigitem( - b'experimental', - b'sparse-read.density-threshold', - default=0.50, -) -coreconfigitem( - b'experimental', - b'sparse-read.min-gap-size', - default=b'65K', -) -coreconfigitem( - b'experimental', - b'stream-v3', - default=False, -) -coreconfigitem( - b'experimental', - b'treemanifest', - default=False, -) -coreconfigitem( - b'experimental', - b'update.atomic-file', - default=False, -) -coreconfigitem( - b'experimental', - b'web.full-garbage-collection-rate', - default=1, # still forcing a full collection on each request -) -coreconfigitem( - b'experimental', - b'worker.wdir-get-thread-safe', - default=False, -) -coreconfigitem( - b'experimental', - b'worker.repository-upgrade', - default=False, -) -coreconfigitem( - b'experimental', - b'xdiff', - default=False, -) -coreconfigitem( - b'extensions', - b'[^:]*', - default=None, - generic=True, -) -coreconfigitem( - b'extensions', - b'[^:]*:required', - default=False, - generic=True, -) -coreconfigitem( - b'extdata', - b'.*', - default=None, - generic=True, -) -coreconfigitem( - b'format', - b'bookmarks-in-store', - default=False, -) -coreconfigitem( - b'format', - b'chunkcachesize', - default=None, - experimental=True, -) -coreconfigitem( - # Enable this dirstate format *when creating a new repository*. - # Which format to use for existing repos is controlled by .hg/requires - b'format', - b'use-dirstate-v2', - default=False, - experimental=True, - alias=[(b'format', b'exp-rc-dirstate-v2')], -) -coreconfigitem( - b'format', - b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories', - default=False, - experimental=True, -) -coreconfigitem( - b'format', - b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet', - default=False, - experimental=True, -) -coreconfigitem( - b'format', - b'use-dirstate-tracked-hint', - default=False, - experimental=True, -) -coreconfigitem( - b'format', - b'use-dirstate-tracked-hint.version', - default=1, - experimental=True, -) -coreconfigitem( - b'format', - b'use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories', - default=False, - experimental=True, -) -coreconfigitem( - b'format', - b'use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories:quiet', - default=False, - experimental=True, -) -coreconfigitem( - b'format', - b'dotencode', - default=True, -) -coreconfigitem( - b'format', - b'generaldelta', - default=False, - experimental=True, -) -coreconfigitem( - b'format', - b'manifestcachesize', - default=None, - experimental=True, -) -coreconfigitem( - b'format', - b'maxchainlen', - default=dynamicdefault, - experimental=True, -) -coreconfigitem( - b'format', - b'obsstore-version', - default=None, -) -coreconfigitem( - b'format', - b'sparse-revlog', - default=True, -) -coreconfigitem( - b'format', - b'revlog-compression', - default=lambda: [b'zstd', b'zlib'], - alias=[(b'experimental', b'format.compression')], -) -# Experimental TODOs: -# -# * Same as for revlogv2 (but for the reduction of the number of files) -# * Actually computing the rank of changesets -# * Improvement to investigate -# - storing .hgtags fnode -# - storing branch related identifier - -coreconfigitem( - b'format', - b'exp-use-changelog-v2', - default=None, - experimental=True, -) -coreconfigitem( - b'format', - b'usefncache', - default=True, -) -coreconfigitem( - b'format', - b'usegeneraldelta', - default=True, -) -coreconfigitem( - b'format', - b'usestore', - default=True, -) -coreconfigitem( - b'format', - b'use-persistent-nodemap', - default=dynamicdefault, -) -coreconfigitem( - b'format', - b'exp-use-copies-side-data-changeset', - default=False, - experimental=True, -) -coreconfigitem( - b'format', - b'use-share-safe', - default=True, -) -coreconfigitem( - b'format', - b'use-share-safe.automatic-upgrade-of-mismatching-repositories', - default=False, - experimental=True, -) -coreconfigitem( - b'format', - b'use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet', - default=False, - experimental=True, -) - -# Moving this on by default means we are confident about the scaling of phases. -# This is not garanteed to be the case at the time this message is written. -coreconfigitem( - b'format', - b'use-internal-phase', - default=False, - experimental=True, -) -# The interaction between the archived phase and obsolescence markers needs to -# be sorted out before wider usage of this are to be considered. -# -# At the time this message is written, behavior when archiving obsolete -# changeset differ significantly from stripping. As part of stripping, we also -# remove the obsolescence marker associated to the stripped changesets, -# revealing the precedecessors changesets when applicable. When archiving, we -# don't touch the obsolescence markers, keeping everything hidden. This can -# result in quite confusing situation for people combining exchanging draft -# with the archived phases. As some markers needed by others may be skipped -# during exchange. -coreconfigitem( - b'format', - b'exp-archived-phase', - default=False, - experimental=True, -) -coreconfigitem( - b'shelve', - b'store', - default=b'internal', - experimental=True, -) -coreconfigitem( - b'fsmonitor', - b'warn_when_unused', - default=True, -) -coreconfigitem( - b'fsmonitor', - b'warn_update_file_count', - default=50000, -) -coreconfigitem( - b'fsmonitor', - b'warn_update_file_count_rust', - default=400000, -) -coreconfigitem( - b'help', - br'hidden-command\..*', - default=False, - generic=True, -) -coreconfigitem( - b'help', - br'hidden-topic\..*', - default=False, - generic=True, -) -coreconfigitem( - b'hooks', - b'[^:]*', - default=dynamicdefault, - generic=True, -) -coreconfigitem( - b'hooks', - b'.*:run-with-plain', - default=True, - generic=True, -) -coreconfigitem( - b'hgweb-paths', - b'.*', - default=list, - generic=True, -) -coreconfigitem( - b'hostfingerprints', - b'.*', - default=list, - generic=True, -) -coreconfigitem( - b'hostsecurity', - b'ciphers', - default=None, -) -coreconfigitem( - b'hostsecurity', - b'minimumprotocol', - default=dynamicdefault, -) -coreconfigitem( - b'hostsecurity', - b'.*:minimumprotocol$', - default=dynamicdefault, - generic=True, -) -coreconfigitem( - b'hostsecurity', - b'.*:ciphers$', - default=dynamicdefault, - generic=True, -) -coreconfigitem( - b'hostsecurity', - b'.*:fingerprints$', - default=list, - generic=True, -) -coreconfigitem( - b'hostsecurity', - b'.*:verifycertsfile$', - default=None, - generic=True, -) - -coreconfigitem( - b'http_proxy', - b'always', - default=False, -) -coreconfigitem( - b'http_proxy', - b'host', - default=None, -) -coreconfigitem( - b'http_proxy', - b'no', - default=list, -) -coreconfigitem( - b'http_proxy', - b'passwd', - default=None, -) -coreconfigitem( - b'http_proxy', - b'user', - default=None, -) - -coreconfigitem( - b'http', - b'timeout', - default=None, -) - -coreconfigitem( - b'logtoprocess', - b'commandexception', - default=None, -) -coreconfigitem( - b'logtoprocess', - b'commandfinish', - default=None, -) -coreconfigitem( - b'logtoprocess', - b'command', - default=None, -) -coreconfigitem( - b'logtoprocess', - b'develwarn', - default=None, -) -coreconfigitem( - b'logtoprocess', - b'uiblocked', - default=None, -) -coreconfigitem( - b'merge', - b'checkunknown', - default=b'abort', -) -coreconfigitem( - b'merge', - b'checkignored', - default=b'abort', -) -coreconfigitem( - b'experimental', - b'merge.checkpathconflicts', - default=False, -) -coreconfigitem( - b'merge', - b'followcopies', - default=True, -) -coreconfigitem( - b'merge', - b'on-failure', - default=b'continue', -) -coreconfigitem( - b'merge', - b'preferancestor', - default=lambda: [b'*'], - experimental=True, -) -coreconfigitem( - b'merge', - b'strict-capability-check', - default=False, -) -coreconfigitem( - b'merge', - b'disable-partial-tools', - default=False, - experimental=True, -) -coreconfigitem( - b'partial-merge-tools', - b'.*', - default=None, - generic=True, - experimental=True, -) -coreconfigitem( - b'partial-merge-tools', - br'.*\.patterns', - default=dynamicdefault, - generic=True, - priority=-1, - experimental=True, -) -coreconfigitem( - b'partial-merge-tools', - br'.*\.executable$', - default=dynamicdefault, - generic=True, - priority=-1, - experimental=True, -) -coreconfigitem( - b'partial-merge-tools', - br'.*\.order', - default=0, - generic=True, - priority=-1, - experimental=True, -) -coreconfigitem( - b'partial-merge-tools', - br'.*\.args', - default=b"$local $base $other", - generic=True, - priority=-1, - experimental=True, -) -coreconfigitem( - b'partial-merge-tools', - br'.*\.disable', - default=False, - generic=True, - priority=-1, - experimental=True, -) -coreconfigitem( - b'merge-tools', - b'.*', - default=None, - generic=True, -) -coreconfigitem( - b'merge-tools', - br'.*\.args$', - default=b"$local $base $other", - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.binary$', - default=False, - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.check$', - default=list, - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.checkchanged$', - default=False, - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.executable$', - default=dynamicdefault, - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.fixeol$', - default=False, - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.gui$', - default=False, - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.mergemarkers$', - default=b'basic', - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.mergemarkertemplate$', - default=dynamicdefault, # take from command-templates.mergemarker - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.priority$', - default=0, - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.premerge$', - default=dynamicdefault, - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.regappend$', - default=b"", - generic=True, - priority=-1, -) -coreconfigitem( - b'merge-tools', - br'.*\.symlink$', - default=False, - generic=True, - priority=-1, -) -coreconfigitem( - b'pager', - b'attend-.*', - default=dynamicdefault, - generic=True, -) -coreconfigitem( - b'pager', - b'ignore', - default=list, -) -coreconfigitem( - b'pager', - b'pager', - default=dynamicdefault, -) -coreconfigitem( - b'patch', - b'eol', - default=b'strict', -) -coreconfigitem( - b'patch', - b'fuzz', - default=2, -) -coreconfigitem( - b'paths', - b'default', - default=None, -) -coreconfigitem( - b'paths', - b'default-push', - default=None, -) -coreconfigitem( - b'paths', - b'[^:]*', - default=None, - generic=True, -) -coreconfigitem( - b'paths', - b'.*:bookmarks.mode', - default='default', - generic=True, -) -coreconfigitem( - b'paths', - b'.*:multi-urls', - default=False, - generic=True, -) -coreconfigitem( - b'paths', - b'.*:pushrev', - default=None, - generic=True, -) -coreconfigitem( - b'paths', - b'.*:pushurl', - default=None, - generic=True, -) -coreconfigitem( - b'paths', - b'.*:pulled-delta-reuse-policy', - default=None, - generic=True, -) -coreconfigitem( - b'phases', - b'checksubrepos', - default=b'follow', -) -coreconfigitem( - b'phases', - b'new-commit', - default=b'draft', -) -coreconfigitem( - b'phases', - b'publish', - default=True, -) -coreconfigitem( - b'profiling', - b'enabled', - default=False, -) -coreconfigitem( - b'profiling', - b'format', - default=b'text', -) -coreconfigitem( - b'profiling', - b'freq', - default=1000, -) -coreconfigitem( - b'profiling', - b'limit', - default=30, -) -coreconfigitem( - b'profiling', - b'nested', - default=0, -) -coreconfigitem( - b'profiling', - b'output', - default=None, -) -coreconfigitem( - b'profiling', - b'showmax', - default=0.999, -) -coreconfigitem( - b'profiling', - b'showmin', - default=dynamicdefault, -) -coreconfigitem( - b'profiling', - b'showtime', - default=True, -) -coreconfigitem( - b'profiling', - b'sort', - default=b'inlinetime', -) -coreconfigitem( - b'profiling', - b'statformat', - default=b'hotpath', -) -coreconfigitem( - b'profiling', - b'time-track', - default=dynamicdefault, -) -coreconfigitem( - b'profiling', - b'type', - default=b'stat', -) -coreconfigitem( - b'progress', - b'assume-tty', - default=False, -) -coreconfigitem( - b'progress', - b'changedelay', - default=1, -) -coreconfigitem( - b'progress', - b'clear-complete', - default=True, -) -coreconfigitem( - b'progress', - b'debug', - default=False, -) -coreconfigitem( - b'progress', - b'delay', - default=3, -) -coreconfigitem( - b'progress', - b'disable', - default=False, -) -coreconfigitem( - b'progress', - b'estimateinterval', - default=60.0, -) -coreconfigitem( - b'progress', - b'format', - default=lambda: [b'topic', b'bar', b'number', b'estimate'], -) -coreconfigitem( - b'progress', - b'refresh', - default=0.1, -) -coreconfigitem( - b'progress', - b'width', - default=dynamicdefault, -) -coreconfigitem( - b'pull', - b'confirm', - default=False, -) -coreconfigitem( - b'push', - b'pushvars.server', - default=False, -) -coreconfigitem( - b'rewrite', - b'backup-bundle', - default=True, - alias=[(b'ui', b'history-editing-backup')], -) -coreconfigitem( - b'rewrite', - b'update-timestamp', - default=False, -) -coreconfigitem( - b'rewrite', - b'empty-successor', - default=b'skip', - experimental=True, -) -# experimental as long as format.use-dirstate-v2 is. -coreconfigitem( - b'storage', - b'dirstate-v2.slow-path', - default=b"abort", - experimental=True, -) -coreconfigitem( - b'storage', - b'new-repo-backend', - default=b'revlogv1', - experimental=True, -) -coreconfigitem( - b'storage', - b'revlog.optimize-delta-parent-choice', - default=True, - alias=[(b'format', b'aggressivemergedeltas')], -) -coreconfigitem( - b'storage', - b'revlog.delta-parent-search.candidate-group-chunk-size', - default=20, -) -coreconfigitem( - b'storage', - b'revlog.issue6528.fix-incoming', - default=True, -) -# experimental as long as rust is experimental (or a C version is implemented) -coreconfigitem( - b'storage', - b'revlog.persistent-nodemap.mmap', - default=True, -) -# experimental as long as format.use-persistent-nodemap is. -coreconfigitem( - b'storage', - b'revlog.persistent-nodemap.slow-path', - default=b"abort", -) - -coreconfigitem( - b'storage', - b'revlog.reuse-external-delta', - default=True, -) -# This option is True unless `format.generaldelta` is set. -coreconfigitem( - b'storage', - b'revlog.reuse-external-delta-parent', - default=None, -) -coreconfigitem( - b'storage', - b'revlog.zlib.level', - default=None, -) -coreconfigitem( - b'storage', - b'revlog.zstd.level', - default=None, -) -coreconfigitem( - b'server', - b'bookmarks-pushkey-compat', - default=True, -) -coreconfigitem( - b'server', - b'bundle1', - default=True, -) -coreconfigitem( - b'server', - b'bundle1gd', - default=None, -) -coreconfigitem( - b'server', - b'bundle1.pull', - default=None, -) -coreconfigitem( - b'server', - b'bundle1gd.pull', - default=None, -) -coreconfigitem( - b'server', - b'bundle1.push', - default=None, -) -coreconfigitem( - b'server', - b'bundle1gd.push', - default=None, -) -coreconfigitem( - b'server', - b'bundle2.stream', - default=True, - alias=[(b'experimental', b'bundle2.stream')], -) -coreconfigitem( - b'server', - b'compressionengines', - default=list, -) -coreconfigitem( - b'server', - b'concurrent-push-mode', - default=b'check-related', -) -coreconfigitem( - b'server', - b'disablefullbundle', - default=False, -) -coreconfigitem( - b'server', - b'maxhttpheaderlen', - default=1024, -) -coreconfigitem( - b'server', - b'pullbundle', - default=True, -) -coreconfigitem( - b'server', - b'preferuncompressed', - default=False, -) -coreconfigitem( - b'server', - b'streamunbundle', - default=False, -) -coreconfigitem( - b'server', - b'uncompressed', - default=True, -) -coreconfigitem( - b'server', - b'uncompressedallowsecret', - default=False, -) -coreconfigitem( - b'server', - b'view', - default=b'served', -) -coreconfigitem( - b'server', - b'validate', - default=False, -) -coreconfigitem( - b'server', - b'zliblevel', - default=-1, -) -coreconfigitem( - b'server', - b'zstdlevel', - default=3, -) -coreconfigitem( - b'share', - b'pool', - default=None, -) -coreconfigitem( - b'share', - b'poolnaming', - default=b'identity', -) -coreconfigitem( - b'share', - b'safe-mismatch.source-not-safe', - default=b'abort', -) -coreconfigitem( - b'share', - b'safe-mismatch.source-safe', - default=b'abort', -) -coreconfigitem( - b'share', - b'safe-mismatch.source-not-safe.warn', - default=True, -) -coreconfigitem( - b'share', - b'safe-mismatch.source-safe.warn', - default=True, -) -coreconfigitem( - b'share', - b'safe-mismatch.source-not-safe:verbose-upgrade', - default=True, -) -coreconfigitem( - b'share', - b'safe-mismatch.source-safe:verbose-upgrade', - default=True, -) -coreconfigitem( - b'shelve', - b'maxbackups', - default=10, -) -coreconfigitem( - b'smtp', - b'host', - default=None, -) -coreconfigitem( - b'smtp', - b'local_hostname', - default=None, -) -coreconfigitem( - b'smtp', - b'password', - default=None, -) -coreconfigitem( - b'smtp', - b'port', - default=dynamicdefault, -) -coreconfigitem( - b'smtp', - b'tls', - default=b'none', -) -coreconfigitem( - b'smtp', - b'username', - default=None, -) -coreconfigitem( - b'sparse', - b'missingwarning', - default=True, - experimental=True, -) -coreconfigitem( - b'subrepos', - b'allowed', - default=dynamicdefault, # to make backporting simpler -) -coreconfigitem( - b'subrepos', - b'hg:allowed', - default=dynamicdefault, -) -coreconfigitem( - b'subrepos', - b'git:allowed', - default=dynamicdefault, -) -coreconfigitem( - b'subrepos', - b'svn:allowed', - default=dynamicdefault, -) -coreconfigitem( - b'templates', - b'.*', - default=None, - generic=True, -) -coreconfigitem( - b'templateconfig', - b'.*', - default=dynamicdefault, - generic=True, -) -coreconfigitem( - b'trusted', - b'groups', - default=list, -) -coreconfigitem( - b'trusted', - b'users', - default=list, -) -coreconfigitem( - b'ui', - b'_usedassubrepo', - default=False, -) -coreconfigitem( - b'ui', - b'allowemptycommit', - default=False, -) -coreconfigitem( - b'ui', - b'archivemeta', - default=True, -) -coreconfigitem( - b'ui', - b'askusername', - default=False, -) -coreconfigitem( - b'ui', - b'available-memory', - default=None, -) - -coreconfigitem( - b'ui', - b'clonebundlefallback', - default=False, -) -coreconfigitem( - b'ui', - b'clonebundleprefers', - default=list, -) -coreconfigitem( - b'ui', - b'clonebundles', - default=True, -) -coreconfigitem( - b'ui', - b'color', - default=b'auto', -) -coreconfigitem( - b'ui', - b'commitsubrepos', - default=False, -) -coreconfigitem( - b'ui', - b'debug', - default=False, -) -coreconfigitem( - b'ui', - b'debugger', - default=None, -) -coreconfigitem( - b'ui', - b'editor', - default=dynamicdefault, -) -coreconfigitem( - b'ui', - b'detailed-exit-code', - default=False, - experimental=True, -) -coreconfigitem( - b'ui', - b'fallbackencoding', - default=None, -) -coreconfigitem( - b'ui', - b'forcecwd', - default=None, -) -coreconfigitem( - b'ui', - b'forcemerge', - default=None, -) -coreconfigitem( - b'ui', - b'formatdebug', - default=False, -) -coreconfigitem( - b'ui', - b'formatjson', - default=False, -) -coreconfigitem( - b'ui', - b'formatted', - default=None, -) -coreconfigitem( - b'ui', - b'interactive', - default=None, -) -coreconfigitem( - b'ui', - b'interface', - default=None, -) -coreconfigitem( - b'ui', - b'interface.chunkselector', - default=None, -) -coreconfigitem( - b'ui', - b'large-file-limit', - default=10 * (2 ** 20), -) -coreconfigitem( - b'ui', - b'logblockedtimes', - default=False, -) -coreconfigitem( - b'ui', - b'merge', - default=None, -) -coreconfigitem( - b'ui', - b'mergemarkers', - default=b'basic', -) -coreconfigitem( - b'ui', - b'message-output', - default=b'stdio', -) -coreconfigitem( - b'ui', - b'nontty', - default=False, -) -coreconfigitem( - b'ui', - b'origbackuppath', - default=None, -) -coreconfigitem( - b'ui', - b'paginate', - default=True, -) -coreconfigitem( - b'ui', - b'patch', - default=None, -) -coreconfigitem( - b'ui', - b'portablefilenames', - default=b'warn', -) -coreconfigitem( - b'ui', - b'promptecho', - default=False, -) -coreconfigitem( - b'ui', - b'quiet', - default=False, -) -coreconfigitem( - b'ui', - b'quietbookmarkmove', - default=False, -) -coreconfigitem( - b'ui', - b'relative-paths', - default=b'legacy', -) -coreconfigitem( - b'ui', - b'remotecmd', - default=b'hg', -) -coreconfigitem( - b'ui', - b'report_untrusted', - default=True, -) -coreconfigitem( - b'ui', - b'rollback', - default=True, -) -coreconfigitem( - b'ui', - b'signal-safe-lock', - default=True, -) -coreconfigitem( - b'ui', - b'slash', - default=False, -) -coreconfigitem( - b'ui', - b'ssh', - default=b'ssh', -) -coreconfigitem( - b'ui', - b'ssherrorhint', - default=None, -) -coreconfigitem( - b'ui', - b'statuscopies', - default=False, -) -coreconfigitem( - b'ui', - b'strict', - default=False, -) -coreconfigitem( - b'ui', - b'style', - default=b'', -) -coreconfigitem( - b'ui', - b'supportcontact', - default=None, -) -coreconfigitem( - b'ui', - b'textwidth', - default=78, -) -coreconfigitem( - b'ui', - b'timeout', - default=b'600', -) -coreconfigitem( - b'ui', - b'timeout.warn', - default=0, -) -coreconfigitem( - b'ui', - b'timestamp-output', - default=False, -) -coreconfigitem( - b'ui', - b'traceback', - default=False, -) -coreconfigitem( - b'ui', - b'tweakdefaults', - default=False, -) -coreconfigitem(b'ui', b'username', alias=[(b'ui', b'user')]) -coreconfigitem( - b'ui', - b'verbose', - default=False, -) -coreconfigitem( - b'verify', - b'skipflags', - default=0, -) -coreconfigitem( - b'web', - b'allowbz2', - default=False, -) -coreconfigitem( - b'web', - b'allowgz', - default=False, -) -coreconfigitem( - b'web', - b'allow-pull', - alias=[(b'web', b'allowpull')], - default=True, -) -coreconfigitem( - b'web', - b'allow-push', - alias=[(b'web', b'allow_push')], - default=list, -) -coreconfigitem( - b'web', - b'allowzip', - default=False, -) -coreconfigitem( - b'web', - b'archivesubrepos', - default=False, -) -coreconfigitem( - b'web', - b'cache', - default=True, -) -coreconfigitem( - b'web', - b'comparisoncontext', - default=5, -) -coreconfigitem( - b'web', - b'contact', - default=None, -) -coreconfigitem( - b'web', - b'deny_push', - default=list, -) -coreconfigitem( - b'web', - b'guessmime', - default=False, -) -coreconfigitem( - b'web', - b'hidden', - default=False, -) -coreconfigitem( - b'web', - b'labels', - default=list, -) -coreconfigitem( - b'web', - b'logoimg', - default=b'hglogo.png', -) -coreconfigitem( - b'web', - b'logourl', - default=b'https://mercurial-scm.org/', -) -coreconfigitem( - b'web', - b'accesslog', - default=b'-', -) -coreconfigitem( - b'web', - b'address', - default=b'', -) -coreconfigitem( - b'web', - b'allow-archive', - alias=[(b'web', b'allow_archive')], - default=list, -) -coreconfigitem( - b'web', - b'allow_read', - default=list, -) -coreconfigitem( - b'web', - b'baseurl', - default=None, -) -coreconfigitem( - b'web', - b'cacerts', - default=None, -) -coreconfigitem( - b'web', - b'certificate', - default=None, -) -coreconfigitem( - b'web', - b'collapse', - default=False, -) -coreconfigitem( - b'web', - b'csp', - default=None, -) -coreconfigitem( - b'web', - b'deny_read', - default=list, -) -coreconfigitem( - b'web', - b'descend', - default=True, -) -coreconfigitem( - b'web', - b'description', - default=b"", -) -coreconfigitem( - b'web', - b'encoding', - default=lambda: encoding.encoding, -) -coreconfigitem( - b'web', - b'errorlog', - default=b'-', -) -coreconfigitem( - b'web', - b'ipv6', - default=False, -) -coreconfigitem( - b'web', - b'maxchanges', - default=10, -) -coreconfigitem( - b'web', - b'maxfiles', - default=10, -) -coreconfigitem( - b'web', - b'maxshortchanges', - default=60, -) -coreconfigitem( - b'web', - b'motd', - default=b'', -) -coreconfigitem( - b'web', - b'name', - default=dynamicdefault, -) -coreconfigitem( - b'web', - b'port', - default=8000, -) -coreconfigitem( - b'web', - b'prefix', - default=b'', -) -coreconfigitem( - b'web', - b'push_ssl', - default=True, -) -coreconfigitem( - b'web', - b'refreshinterval', - default=20, -) -coreconfigitem( - b'web', - b'server-header', - default=None, -) -coreconfigitem( - b'web', - b'static', - default=None, -) -coreconfigitem( - b'web', - b'staticurl', - default=None, -) -coreconfigitem( - b'web', - b'stripes', - default=1, -) -coreconfigitem( - b'web', - b'style', - default=b'paper', -) -coreconfigitem( - b'web', - b'templates', - default=None, -) -coreconfigitem( - b'web', - b'view', - default=b'served', - experimental=True, -) -coreconfigitem( - b'worker', - b'backgroundclose', - default=dynamicdefault, -) -# Windows defaults to a limit of 512 open files. A buffer of 128 -# should give us enough headway. -coreconfigitem( - b'worker', - b'backgroundclosemaxqueue', - default=384, -) -coreconfigitem( - b'worker', - b'backgroundcloseminfilecount', - default=2048, -) -coreconfigitem( - b'worker', - b'backgroundclosethreadcount', - default=4, -) -coreconfigitem( - b'worker', - b'enabled', - default=True, -) -coreconfigitem( - b'worker', - b'numcpus', - default=None, -) - -# Rebase related configuration moved to core because other extension are doing -# strange things. For example, shelve import the extensions to reuse some bit -# without formally loading it. -coreconfigitem( - b'commands', - b'rebase.requiredest', - default=False, -) -coreconfigitem( - b'experimental', - b'rebaseskipobsolete', - default=True, -) -coreconfigitem( - b'rebase', - b'singletransaction', - default=False, -) -coreconfigitem( - b'rebase', - b'experimental.inmemory', - default=False, -) - -# This setting controls creation of a rebase_source extra field -# during rebase. When False, no such field is created. This is -# useful eg for incrementally converting changesets and then -# rebasing them onto an existing repo. -# WARNING: this is an advanced setting reserved for people who know -# exactly what they are doing. Misuse of this setting can easily -# result in obsmarker cycles and a vivid headache. -coreconfigitem( - b'rebase', - b'store-source', - default=True, - experimental=True, -) +import_configitems_from_file()