##// END OF EJS Templates
revlog: add a mechanism to verify expected file position before appending...
revlog: add a mechanism to verify expected file position before appending If someone uses `hg debuglocks`, or some non-hg process writes to the .hg directory without respecting the locks, or if the repo's on a networked filesystem, it's possible for the revlog code to write out corrupted data. The form of this corruption can vary depending on what data was written and how that happened. We are in the "networked filesystem" case (though I've had users also do this to themselves with the "`hg debuglocks`" scenario), and most often see this with the changelog. What ends up happening is we produce two items (let's call them rev1 and rev2) in the .i file that have the same linkrev, baserev, and offset into the .d file, while the data in the .d file is appended properly. rev2's compressed_size is accurate for rev2, but when we go to decompress the data in the .d file, we use the offset that's recorded in the index file, which is the same as rev1, and attempt to decompress rev2.compressed_size bytes of rev1's data. This usually does not succeed. :) When using inline data, this also fails, though I haven't investigated why too closely. This shows up as a "patch decode" error. I believe what's happening there is that we're basically ignoring the offset field, getting the data properly, but since baserev != rev, it thinks this is a delta based on rev (instead of a full text) and can't actually apply it as such. For now, I'm going to make this an optional component and default it to entirely off. I may increase the default severity of this in the future, once I've enabled it for my users and we gain more experience with it. Luckily, most of my users have a versioned filesystem and can roll back to before the corruption has been written, it's just a hassle to do so and not everyone knows how (so it's a support burden). Users on other filesystems will not have that luxury, and this can cause them to have a corrupted repository that they are unlikely to know how to resolve, and they'll see this as a data-loss event. Refusing to create the corruption is a much better user experience. This mechanism is not perfect. There may be false-negatives (racy writes that are not detected). There should not be any false-positives (non-racy writes that are detected as such). This is not a mechanism that makes putting a repo on a networked filesystem "safe" or "supported", just *less* likely to cause corruption. Differential Revision: https://phab.mercurial-scm.org/D9952

File last commit:

r47349:e9901d01 default
r47349:e9901d01 default
Show More
configitems.py
2627 lines | 43.7 KiB | text/x-python | PythonLexer
configitems: add a basic class to hold config item information...
r32983 # configitems.py - centralized declaration of configuration option
#
# Copyright 2017 Pierre-Yves David <pierre-yves.david@octobus.net>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
configitems: extract the logic to build a registrar on any configtable...
r33126 import functools
Boris Feld
configitems: allow for the registration of "generic" config item...
r34663 import re
configitems: extract the logic to build a registrar on any configtable...
r33126
configitems: introduce a central registry for config option...
r32984 from . import (
Boris Feld
configitems: register the 'web.encoding' config
r34236 encoding,
configitems: introduce a central registry for config option...
r32984 error,
)
Augie Fackler
formatting: blacken the codebase...
r43346
configitems: add an official API for extensions to register config item...
r33127 def loadconfigtable(ui, extname, configtable):
"""update config item known to the ui with the extension ones"""
Gregory Szorc
configitems: traverse sections deterministically...
r35826 for section, items in sorted(configtable.items()):
Boris Feld
configitems: fix registration of extensions config...
r34769 knownitems = ui._knownconfig.setdefault(section, itemregister())
configitems: add a devel warning for extensions items overiding core one...
r33128 knownkeys = set(knownitems)
newkeys = set(items)
for key in sorted(knownkeys & newkeys):
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 msg = b"extension '%s' overwrite config item '%s.%s'"
configitems: add a devel warning for extensions items overiding core one...
r33128 msg %= (extname, section, key)
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 ui.develwarn(msg, config=b'warn-config')
configitems: add a devel warning for extensions items overiding core one...
r33128
knownitems.update(items)
configitems: add an official API for extensions to register config item...
r33127
Augie Fackler
formatting: blacken the codebase...
r43346
configitems: add a basic class to hold config item information...
r32983 class configitem(object):
"""represent a known config item
:section: the official config section where to find this item,
:name: the official name within the section,
:default: default value for this item,
Boris Feld
configitems: allow for the registration of "generic" config item...
r34663 :alias: optional list of tuples as alternatives,
:generic: this is a generic definition, match name using regular expression.
configitems: add a basic class to hold config item information...
r32983 """
Augie Fackler
formatting: blacken the codebase...
r43346 def __init__(
self,
section,
name,
default=None,
alias=(),
generic=False,
priority=0,
experimental=False,
):
configitems: add a basic class to hold config item information...
r32983 self.section = section
self.name = name
self.default = default
David Demelier
configitems: add alias support in config...
r33329 self.alias = list(alias)
Boris Feld
configitems: allow for the registration of "generic" config item...
r34663 self.generic = generic
self.priority = priority
Navaneeth Suresh
config: add experimental argument to the config registrar...
r43028 self.experimental = experimental
Boris Feld
configitems: allow for the registration of "generic" config item...
r34663 self._re = None
if generic:
self._re = re.compile(self.name)
Augie Fackler
formatting: blacken the codebase...
r43346
Boris Feld
configitems: allow for the registration of "generic" config item...
r34663 class itemregister(dict):
"""A specialized dictionary that can handle wild-card selection"""
def __init__(self):
super(itemregister, self).__init__()
self._generics = set()
def update(self, other):
super(itemregister, self).update(other)
self._generics.update(other._generics)
def __setitem__(self, key, item):
super(itemregister, self).__setitem__(key, item)
if item.generic:
self._generics.add(item)
def get(self, key):
Boris Feld
configitems: do not directly match generic items...
r34875 baseitem = super(itemregister, self).get(key)
if baseitem is not None and not baseitem.generic:
return baseitem
Boris Feld
configitems: allow for the registration of "generic" config item...
r34663
# search for a matching generic item
generics = sorted(self._generics, key=(lambda x: (x.priority, x.name)))
for item in generics:
Boris Feld
configitems: document the choice of using 'match' instead of 'search'
r34876 # we use 'match' instead of 'search' to make the matching simpler
# for people unfamiliar with regular expression. Having the match
# rooted to the start of the string will produce less surprising
# result for user writing simple regex for sub-attribute.
#
# For example using "color\..*" match produces an unsurprising
# result, while using search could suddenly match apparently
# unrelated configuration that happens to contains "color."
# anywhere. This is a tradeoff where we favor requiring ".*" on
# some match to avoid the need to prefix most pattern with "^".
# The "^" seems more error prone.
Boris Feld
configitems: allow for the registration of "generic" config item...
r34663 if item._re.match(key):
return item
Boris Feld
configitems: do not directly match generic items...
r34875 return None
configitems: introduce a central registry for config option...
r32984
Augie Fackler
formatting: blacken the codebase...
r43346
configitems: introduce a central registry for config option...
r32984 coreitems = {}
Augie Fackler
formatting: blacken the codebase...
r43346
configitems: extract the logic to build a registrar on any configtable...
r33126 def _register(configtable, *args, **kwargs):
configitems: introduce a central registry for config option...
r32984 item = configitem(*args, **kwargs)
Boris Feld
configitems: allow for the registration of "generic" config item...
r34663 section = configtable.setdefault(item.section, itemregister())
configitems: introduce a central registry for config option...
r32984 if item.name in section:
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 msg = b"duplicated config item registration for '%s.%s'"
configitems: introduce a central registry for config option...
r32984 raise error.ProgrammingError(msg % (item.section, item.name))
section[item.name] = item
configitems: register 'ui.quiet' as first example...
r32986
Augie Fackler
formatting: blacken the codebase...
r43346
Boris Feld
configitems: handle case were the default value is not static...
r33471 # special value for case where the default is derived from other values
dynamicdefault = object()
configitems: register 'ui.quiet' as first example...
r32986 # Registering actual config items
Augie Fackler
formatting: blacken the codebase...
r43346
configitems: extract the logic to build a registrar on any configtable...
r33126 def getitemregister(configtable):
Yuya Nishihara
registrar: host "dynamicdefault" constant by configitem object...
r34918 f = functools.partial(_register, configtable)
# export pseudo enum as configitem.*
f.dynamicdefault = dynamicdefault
return f
configitems: extract the logic to build a registrar on any configtable...
r33126
Augie Fackler
formatting: blacken the codebase...
r43346
configitems: extract the logic to build a registrar on any configtable...
r33126 coreconfigitem = getitemregister(coreitems)
Augie Fackler
formatting: blacken the codebase...
r43346
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 def _registerdiffopts(section, configprefix=b''):
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 section,
configprefix + b'nodates',
default=False,
Kyle Lippincott
config: extract diff-related coreconfigitem()s to a helper method...
r41699 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 section,
configprefix + b'showfunc',
default=False,
Kyle Lippincott
config: extract diff-related coreconfigitem()s to a helper method...
r41699 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 section,
configprefix + b'unified',
default=None,
Kyle Lippincott
config: extract diff-related coreconfigitem()s to a helper method...
r41699 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 section,
configprefix + b'git',
default=False,
Kyle Lippincott
config: extract diff-related coreconfigitem()s to a helper method...
r41699 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 section,
configprefix + b'ignorews',
default=False,
Kyle Lippincott
config: extract diff-related coreconfigitem()s to a helper method...
r41699 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 section,
configprefix + b'ignorewsamount',
default=False,
Kyle Lippincott
config: extract diff-related coreconfigitem()s to a helper method...
r41699 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 section,
configprefix + b'ignoreblanklines',
default=False,
Kyle Lippincott
config: extract diff-related coreconfigitem()s to a helper method...
r41699 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 section,
configprefix + b'ignorewseol',
default=False,
Kyle Lippincott
config: extract diff-related coreconfigitem()s to a helper method...
r41699 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 section,
configprefix + b'nobinary',
default=False,
Kyle Lippincott
config: extract diff-related coreconfigitem()s to a helper method...
r41699 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 section,
configprefix + b'noprefix',
default=False,
Kyle Lippincott
config: extract diff-related coreconfigitem()s to a helper method...
r41699 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 section,
configprefix + b'word-diff',
default=False,
Kyle Lippincott
config: extract diff-related coreconfigitem()s to a helper method...
r41699 )
Augie Fackler
formatting: blacken the codebase...
r43346
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'alias',
b'.*',
default=dynamicdefault,
generic=True,
)
coreconfigitem(
b'auth',
b'cookiefile',
default=None,
configitems: register the 'auth.cookiefile' config
r33177 )
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 _registerdiffopts(section=b'annotate')
configitems: register the 'bookmarks.pushing' config
r33178 # bookmarks.pushing: internal hack for discovery
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'bookmarks',
b'pushing',
default=list,
configitems: register the 'bookmarks.pushing' config
r33178 )
configitems: register the 'bundle.mainreporoot' config
r33179 # bundle.mainreporoot: internal hack for bundlerepo
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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,
Yuya Nishihara
commandserver: add experimental option to use separate message channel...
r40625 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'cmdserver',
b'track-log',
default=lambda: [b'chgserver', b'cmdserver', b'repocache'],
Yuya Nishihara
commandserver: add config knob for various logging options...
r40862 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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,
Boris Feld
configitems: register the 'color.pagermode' config
r33472 )
Martin von Zweigbergk
config: add a new [command-templates] section for templates defined by hg...
r46350 coreconfigitem(
Martin von Zweigbergk
config: rename ui.graphnodetemplate to command-templates.graphnode...
r46351 b'command-templates',
b'graphnode',
default=None,
alias=[(b'ui', b'graphnodetemplate')],
)
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'command-templates',
b'log',
default=None,
alias=[(b'ui', b'logtemplate')],
Martin von Zweigbergk
config: add a new [command-templates] section for templates defined by hg...
r46350 )
Martin von Zweigbergk
config: rename ui.mergemarkertemplate to command-templates.mergemarker...
r46352 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')],
)
Martin von Zweigbergk
config: move ui.pre-merge-tool-output-template into [command-templates]...
r46353 coreconfigitem(
b'command-templates',
b'pre-merge-tool-output',
default=None,
alias=[(b'ui', b'pre-merge-tool-output-template')],
)
Martin von Zweigbergk
rebase: make summary template configurable, with default to shared template...
r46355 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'command-templates',
b'oneline-summary',
default=None,
Martin von Zweigbergk
rebase: make summary template configurable, with default to shared template...
r46355 )
coreconfigitem(
b'command-templates',
b'oneline-summary.*',
default=dynamicdefault,
generic=True,
)
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 _registerdiffopts(section=b'commands', configprefix=b'commit.interactive.')
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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',
Kyle Lippincott
resolve: graduate resolve.mark-check from experimental, add docs...
r38893 )
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 _registerdiffopts(section=b'commands', configprefix=b'revert.interactive.')
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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(
Nikita Slyusarev
convert: option to set date and time for svn commits...
r47129 b'convert',
b'svn.dangerous-set-commit-dates',
default=False,
)
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'debug',
b'dirstate.delaywrite',
default=0,
)
coreconfigitem(
Kyle Lippincott
revlog: add a mechanism to verify expected file position before appending...
r47349 b'debug',
b'revlog.verifyposition.changelog',
default=b'',
)
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'defaults',
b'.*',
default=None,
generic=True,
)
coreconfigitem(
b'devel',
b'all-warnings',
default=False,
)
coreconfigitem(
b'devel',
b'bundle2.debug',
default=False,
)
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,
)
copies: add an devel option to trace all files...
r47137 # Track copy information for all file, not just "added" one (very slow)
coreconfigitem(
b'devel',
b'copy-tracing.trace-all-files',
default=False,
)
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 coreconfigitem(
b'devel',
b'default-date',
default=None,
)
coreconfigitem(
b'devel',
b'deprec-warn',
default=False,
)
coreconfigitem(
b'devel',
b'disableloaddefaultcerts',
default=False,
)
coreconfigitem(
b'devel',
b'warn-empty-changegroup',
default=False,
)
coreconfigitem(
b'devel',
b'legacy.exchange',
default=list,
)
persistent-nodemap: document the `devel.persistent-nodemap` option...
r47021 # When True, revlogs use a special reference version of the nodemap, that is not
# performant but is "known" to behave properly.
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 coreconfigitem(
b'devel',
b'persistent-nodemap',
default=False,
)
coreconfigitem(
b'devel',
b'servercafile',
default=b'',
)
coreconfigitem(
b'devel',
b'serverexactprotocol',
default=b'',
)
coreconfigitem(
b'devel',
b'serverrequirecert',
default=False,
)
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',
Simon Sapin
copies-rust: move CPU-heavy Rust processing into a child thread...
r47330 b'copy-tracing.multi-thread',
default=True,
)
coreconfigitem(
b'devel',
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'debug.extensions',
default=False,
)
coreconfigitem(
b'devel',
b'debug.repo-filters',
default=False,
)
coreconfigitem(
b'devel',
b'debug.peer-request',
default=False,
)
discovery: add a devel.discovery.exchange-heads...
r47034 # 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,
)
discovery: add a `devel', b'discovery.grow-sample`...
r47017 # 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,
)
discovery: add a discovery.grow-sample.rate...
r47018 # discovery.grow-sample.rate control the rate at which the sample grow
coreconfigitem(
b'devel',
b'discovery.grow-sample.rate',
default=1.05,
)
discovery: document the `devel.discovery.randomize` option...
r47016 # If discovery.randomize is False, random sampling during discovery are
# deterministic. It is meant for integration tests.
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 coreconfigitem(
b'devel',
b'discovery.randomize',
default=True,
Georges Racinet
discovery: new devel.discovery.randomize option...
r42969 )
discovery: add config options to control sample size...
r47068 # 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,
)
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 _registerdiffopts(section=b'diff')
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Martin von Zweigbergk
diff: replace --merge option by config option...
r47246 b'diff',
b'merge',
default=False,
experimental=True,
)
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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'changegroup3',
default=False,
)
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,
Jun Wu
codemod: register core configitems using a script...
r33499 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'experimental',
b'evolution.allowdivergence',
Boris Feld
rewriting: add an option for rewrite commands to use the archived phase...
r41961 default=False,
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 alias=[(b'experimental', b'allowdivergence')],
Jun Wu
codemod: register core configitems using a script...
r33499 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'experimental',
b'evolution.allowunstable',
default=None,
)
coreconfigitem(
b'experimental',
b'evolution.createmarkers',
default=None,
Jun Wu
codemod: register core configitems using a script...
r33499 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'experimental',
b'evolution.effect-flags',
Augie Fackler
formatting: blacken the codebase...
r43346 default=True,
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 alias=[(b'experimental', b'effect-flags')],
Jun Wu
codemod: register core configitems using a script...
r33499 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'experimental',
b'evolution.exchange',
default=None,
)
coreconfigitem(
b'experimental',
b'evolution.bundle-obsmarker',
default=False,
)
coreconfigitem(
b'experimental',
Joerg Sonnenberger
bundle: optional advisory obsolescence parts...
r46780 b'evolution.bundle-obsmarker:mandatory',
default=True,
)
coreconfigitem(
b'experimental',
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'log.topo',
default=False,
)
coreconfigitem(
b'experimental',
b'evolution.report-instabilities',
default=True,
)
coreconfigitem(
b'experimental',
b'evolution.track-operation',
default=True,
Boris Feld
config: invert evolution-related configuration aliases...
r34864 )
repoview: introduce a `experimental.extra-filter-revs` config...
r42417 # 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`.
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'experimental',
b'extra-filter-revs',
default=None,
)
coreconfigitem(
b'experimental',
b'maxdeltachainspan',
default=-1,
Boris Feld
configitems: register the 'experimental.maxdeltachainspan' config
r34520 )
Pulkit Goyal
configitems: add a new config option to control new filenode functionality...
r46153 # tracks files which were undeleted (merge might delete them but we explicitly
# kept/undeleted them) and creates new filenodes for them
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'experimental',
b'merge-track-salvaged',
default=False,
)
coreconfigitem(
b'experimental',
b'mergetempdirprefix',
default=None,
)
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'httppeer.advertise-v2',
default=False,
)
coreconfigitem(
b'experimental',
b'httppeer.v2-encoder-order',
default=None,
)
coreconfigitem(
b'experimental',
b'httppostargs',
default=False,
Jun Wu
codemod: register core configitems using a script...
r33499 )
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 coreconfigitem(b'experimental', b'nointerrupt', default=False)
coreconfigitem(b'experimental', b'nointerrupt-interactiveonly', default=True)
Augie Fackler
ui: add an uninterruptable context manager that can block SIGINT...
r38545
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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,
)
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.filesdata.recommended-batch-size',
default=50000,
Gregory Szorc
wireprotov2: define and implement "filesdata" command...
r40214 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'experimental',
b'server.manifestdata.recommended-batch-size',
Gregory Szorc
wireprotov2: advertise recommended batch size for requests...
r40208 default=100000,
)
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'experimental',
b'server.stream-narrow-clones',
default=False,
)
coreconfigitem(
b'experimental',
b'single-head-per-branch',
default=False,
Gregory Szorc
wireproto: implement basic frame reading and processing...
r37070 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'experimental',
b'single-head-per-branch:account-closed-heads',
Martin von Zweigbergk
bookmarks: keep bookmarks in .hg/store if new config set...
r42512 default=False,
)
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'experimental',
Joerg Sonnenberger
singlehead: introduce option to restrict to public changes...
r46712 b'single-head-per-branch:public-changes-only',
default=False,
)
coreconfigitem(
b'experimental',
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'sshserver.support-v2',
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'treemanifest',
default=False,
)
coreconfigitem(
b'experimental',
b'update.atomic-file',
default=False,
)
coreconfigitem(
b'experimental',
b'sshpeer.advertise-v2',
default=False,
)
coreconfigitem(
b'experimental',
b'web.apiserver',
default=False,
)
coreconfigitem(
b'experimental',
b'web.api.http-v2',
default=False,
)
coreconfigitem(
b'experimental',
b'web.api.debugreflect',
default=False,
)
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'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(
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,
Gregory Szorc
fsmonitor: warn when fsmonitor could be used...
r34886 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'format',
b'revlog-compression',
revlog-compression: update the config to be a list...
r44866 default=lambda: [b'zlib'],
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 alias=[(b'experimental', b'format.compression')],
Gregory Szorc
fsmonitor: warn when fsmonitor could be used...
r34886 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'format',
b'usefncache',
default=True,
)
coreconfigitem(
b'format',
b'usegeneraldelta',
default=True,
)
coreconfigitem(
b'format',
b'usestore',
default=True,
rdamazio@google.com
help: allow commands to be hidden...
r40448 )
persistent-nodemap: remove the "experimental" tag to the feature...
r47031 coreconfigitem(
b'format',
b'use-persistent-nodemap',
default=False,
nodemap: move the main switch to the `format` section...
r45297 )
coreconfigitem(
sidedatacopies: add a new requirement for storing copies into sidedata...
r43407 b'format',
b'exp-use-copies-side-data-changeset',
default=False,
experimental=True,
)
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'format',
b'exp-use-side-data',
default=False,
experimental=True,
)
coreconfigitem(
b'format',
Pulkit Goyal
share: move share safe functionality out of experimental...
r47052 b'use-share-safe',
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 default=False,
)
coreconfigitem(
b'format',
b'internal-phase',
default=False,
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',
hooks: forbid ':' in hook name...
r47240 b'[^:]*',
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 default=dynamicdefault,
generic=True,
)
coreconfigitem(
hooks: introduce a `:run-with-plain` option for hooks...
r47242 b'hooks',
b'.*:run-with-plain',
default=True,
generic=True,
)
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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,
Augie Fackler
formatting: blacken the codebase...
r43346 )
coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'hostsecurity',
b'.*:minimumprotocol$',
default=dynamicdefault,
generic=True,
Boris Feld
configitems: register the 'hostsecurity.*:ciphers' config
r34775 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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,
Boris Feld
configitems: register the 'hostsecurity.*:verifycertsfile' config
r34777 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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,
Jun Wu
codemod: register core configitems using a script...
r33499 )
Cédric Krier
url: allow to configure timeout on http connection...
r40079
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'http',
b'timeout',
default=None,
Cédric Krier
url: allow to configure timeout on http connection...
r40079 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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-tools',
b'.*',
default=None,
generic=True,
FUJIWARA Katsunori
filemerge: add config knob to check capabilities of internal merge tools...
r39161 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'merge-tools',
Augie Fackler
formatting: blacken the codebase...
r43346 br'.*\.args$',
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 default=b"$local $base $other",
Boris Feld
configitems: register the full 'merge-tools' config and sub-options...
r34827 generic=True,
priority=-1,
)
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'merge-tools',
br'.*\.binary$',
default=False,
generic=True,
priority=-1,
)
coreconfigitem(
b'merge-tools',
br'.*\.check$',
default=list,
generic=True,
priority=-1,
Kyle Lippincott
filemerge: support passing labels to external merge tools...
r35925 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'merge-tools',
Augie Fackler
formatting: blacken the codebase...
r43346 br'.*\.checkchanged$',
Boris Feld
configitems: register the full 'merge-tools' config and sub-options...
r34827 default=False,
generic=True,
priority=-1,
)
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'merge-tools',
Augie Fackler
formatting: blacken the codebase...
r43346 br'.*\.executable$',
default=dynamicdefault,
generic=True,
priority=-1,
)
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'merge-tools',
br'.*\.fixeol$',
default=False,
generic=True,
priority=-1,
)
coreconfigitem(
b'merge-tools',
br'.*\.gui$',
default=False,
generic=True,
priority=-1,
Augie Fackler
formatting: blacken the codebase...
r43346 )
coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'merge-tools',
Augie Fackler
formatting: blacken the codebase...
r43346 br'.*\.mergemarkers$',
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 default=b'basic',
Augie Fackler
formatting: blacken the codebase...
r43346 generic=True,
priority=-1,
)
coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'merge-tools',
Augie Fackler
formatting: blacken the codebase...
r43346 br'.*\.mergemarkertemplate$',
Martin von Zweigbergk
config: rename ui.mergemarkertemplate to command-templates.mergemarker...
r46352 default=dynamicdefault, # take from command-templates.mergemarker
Augie Fackler
formatting: blacken the codebase...
r43346 generic=True,
priority=-1,
)
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'merge-tools',
br'.*\.priority$',
default=0,
generic=True,
priority=-1,
Augie Fackler
formatting: blacken the codebase...
r43346 )
coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'merge-tools',
Augie Fackler
formatting: blacken the codebase...
r43346 br'.*\.premerge$',
Boris Feld
configitems: register the 'pager.attend-.*' options
r34670 default=dynamicdefault,
generic=True,
Augie Fackler
formatting: blacken the codebase...
r43346 priority=-1,
Boris Feld
configitems: register the 'pager.attend-.*' options
r34670 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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'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,
Jun Wu
progress: make ETA only consider progress made in the last minute...
r34315 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'progress',
b'format',
default=lambda: [b'topic', b'bar', b'number', b'estimate'],
Boris Feld
configitems: register the 'progress.format' config
r34747 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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,
Boris Feld
configitems: register the 'progress.width' config
r33473 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'rewrite',
b'backup-bundle',
Yuya Nishihara
repair: move ui.history-editing-backup to [rewrite] section...
r41242 default=True,
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 alias=[(b'ui', b'history-editing-backup')],
Yuya Nishihara
repair: move ui.history-editing-backup to [rewrite] section...
r41242 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'rewrite',
b'update-timestamp',
default=False,
)
coreconfigitem(
b'rewrite',
b'empty-successor',
default=b'skip',
experimental=True,
)
coreconfigitem(
b'storage',
b'new-repo-backend',
default=b'revlogv1',
experimental=True,
Gregory Szorc
localrepo: define storage backend in creation options (API)...
r40032 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'storage',
b'revlog.optimize-delta-parent-choice',
Boris Feld
aggressivemergedelta: document rename and move to `revlog` section...
r38760 default=True,
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 alias=[(b'format', b'aggressivemergedeltas')],
Boris Feld
aggressivemergedelta: document rename and move to `revlog` section...
r38760 )
nodemap: move the option for mmap usage to storage.revlog.nodemap.mmap...
r45299 # experimental as long as rust is experimental (or a C version is implemented)
coreconfigitem(
persistent-nodemap: rename the storage.revlog.nodemap.mmap option...
r47024 b'storage',
b'revlog.persistent-nodemap.mmap',
default=True,
nodemap: move the option for mmap usage to storage.revlog.nodemap.mmap...
r45299 )
nodemap: move the mode option to storage.revlog.nodemap.mode...
r45300 # experimental as long as format.use-persistent-nodemap is.
coreconfigitem(
persistent-nodemap: add a revlog.storage.persistent-nodemap.slow-path option...
r47026 b'storage',
b'revlog.persistent-nodemap.slow-path',
persistent-nodemap: add a "abort" option to the slow-path config...
r47029 default=b"abort",
persistent-nodemap: add a revlog.storage.persistent-nodemap.slow-path option...
r47026 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'storage',
b'revlog.reuse-external-delta',
default=True,
)
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,
Boris Feld
configitems: register the 'server.bundle*' family of config...
r34614 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'server',
b'bundle2.stream',
av6
bundle2: make server.bundle2.stream default to True...
r39758 default=True,
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 alias=[(b'experimental', b'bundle2.stream')],
av6
bundle2: graduate bundle2.stream option from experimental to server section...
r39757 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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=False,
)
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(
Pulkit Goyal
share: rework config options to be much clearer and easier...
r47050 b'share',
b'safe-mismatch.source-not-safe',
default=b'abort',
)
coreconfigitem(
b'share',
b'safe-mismatch.source-safe',
default=b'abort',
)
coreconfigitem(
Pulkit Goyal
share: rename share-safe warning config...
r47051 b'share',
b'safe-mismatch.source-not-safe.warn',
default=True,
)
coreconfigitem(
b'share',
b'safe-mismatch.source-safe.warn',
default=True,
)
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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,
Jun Wu
codemod: register core configitems using a script...
r33499 )
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'subrepos',
b'allowed',
Yuya Nishihara
subrepo: add config option to reject any subrepo operations (SEC)...
r34986 default=dynamicdefault, # to make backporting simpler
)
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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,
Joerg Sonnenberger
util: provide a helper function to estimate RAM size...
r45621 )
coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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=10000000,
)
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,
David Demelier
configitems: add alias support in config...
r33329 )
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 coreconfigitem(b'ui', b'username', alias=[(b'ui', b'user')])
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'ui',
b'verbose',
default=False,
)
coreconfigitem(
b'verify',
b'skipflags',
default=None,
)
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,
Boris Feld
configitems: register the 'worker.backgroundclose' config
r33474 )
configitems: gather comment related to 'worker.backgroundclosemaxqueue'...
r33231 # Windows defaults to a limit of 512 open files. A buffer of 128
# should give us enough headway.
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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,
configitems: register the 'worker.numcpus' config
r33230 )
Boris Feld
configitems: move rebase config into core...
r34832
# 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.
Augie Fackler
formatting: blacken the codebase...
r43346 coreconfigitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 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,
)