# HG changeset patch # User Pierre-Yves David # Date 2021-01-14 00:25:06 # Node ID 05a1e44b2224bee39fa4b9237ac43620c2b775b1 # Parent 51da7c8ef3574c019d69fc75b2b351d85ee74271 persistent-nodemap: add a revlog.storage.persistent-nodemap.slow-path option As discussed during the sprint, we want to prevent user to get an unexpected performance regression when accessing a repository using "persistent-nodemap" without the associated Rust extension. We start by adding a config declaration and some documentation. Since "allow" is the current behavior, we don't need to add any code. The option possible value will come later. Note that we already have a `storage.revlog.nodemap.mode` option, but that option is a bit different. It does some warning and checking at revlog instantiation time. While we want something done at requirements checking time. Since we plan for new names and new config value names, we introduce a new option and will drop the old one later. Differential Revision: https://phab.mercurial-scm.org/D9758 diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -1793,6 +1793,14 @@ coreconfigitem( coreconfigitem( b'storage', b'revlog.nodemap.mode', default=b'compat', experimental=True ) +# experimental as long as format.use-persistent-nodemap is. +coreconfigitem( + b'storage', + b'revlog.persistent-nodemap.slow-path', + default=b"allow", + experimental=True, +) + coreconfigitem( b'storage', b'revlog.reuse-external-delta', diff --git a/mercurial/helptext/config.txt b/mercurial/helptext/config.txt --- a/mercurial/helptext/config.txt +++ b/mercurial/helptext/config.txt @@ -1953,6 +1953,18 @@ category impact performance and reposito For details on the "persistent-nodemap" feature, see: :hg:`help config format.use-persistent-nodemap`. +``revlog.persistent-nodemap.slow-path`` + Control the behavior of Merucrial when using a repository with "persistent" + nodemap with an installation of Mercurial without a fast implementation for + the feature: + + ``allow``: Silently use the slower implementation to access the repository. + + Default to "allow" + + For details on the "persistent-nodemap" feature, see: + :hg:`help config format.use-persistent-nodemap`. + ``revlog.reuse-external-delta-parent`` Control the order in which delta parents are considered when adding new revisions from an external source.