mercurial/localrepo.py
changeset 46310 fc2d5c0aed7f
parent 46309 2c9c88879ab7
child 46311 014ac7a32048
--- a/mercurial/localrepo.py	Wed Jan 13 18:33:48 2021 +0100
+++ b/mercurial/localrepo.py	Wed Jan 13 23:07:41 2021 +0100
@@ -59,6 +59,7 @@
     rcutil,
     repoview,
     requirements as requirementsmod,
+    revlog,
     revset,
     revsetlang,
     scmutil,
@@ -1047,7 +1048,7 @@
         slow_path = ui.config(
             b'storage', b'revlog.persistent-nodemap.slow-path'
         )
-        if slow_path not in (b'allow'):
+        if slow_path not in (b'allow', b'warn'):
             default = ui.config_default(
                 b'storage', b'revlog.persistent-nodemap.slow-path'
             )
@@ -1059,6 +1060,21 @@
             if not ui.quiet:
                 ui.warn(_(b'falling back to default value: %s\n') % default)
             slow_path = default
+
+        msg = _(
+            b"accessing `persistent-nodemap` repository without associated "
+            b"fast implementation."
+        )
+        hint = _(
+            b"check `hg help config.format.use-persistent-nodemap` "
+            b"for details"
+        )
+        if slow_path == b'warn' and not revlog.HAS_FAST_PERSISTENT_NODEMAP:
+            msg = b"warning: " + msg + b'\n'
+            ui.warn(msg)
+            if not ui.quiet:
+                hint = b'(' + hint + b')\n'
+                ui.warn(hint)
         options[b'persistent-nodemap'] = True
     if ui.configbool(b'storage', b'revlog.persistent-nodemap.mmap'):
         options[b'persistent-nodemap.mmap'] = True