mercurial/revlogutils/nodemap.py
changeset 46472 98e39f04d60e
parent 46470 dadb4db55661
child 46526 67b5fafd3a46
--- a/mercurial/revlogutils/nodemap.py	Mon Feb 01 00:10:27 2021 +0530
+++ b/mercurial/revlogutils/nodemap.py	Mon Feb 01 00:02:00 2021 +0530
@@ -128,15 +128,20 @@
         notr._postclose[k](None)
 
 
-def persist_nodemap(tr, revlog, pending=False):
+def persist_nodemap(tr, revlog, pending=False, force=False):
     """Write nodemap data on disk for a given revlog"""
     if getattr(revlog, 'filteredrevs', ()):
         raise error.ProgrammingError(
             "cannot persist nodemap of a filtered changelog"
         )
     if revlog.nodemap_file is None:
-        msg = "calling persist nodemap on a revlog without the feature enabled"
-        raise error.ProgrammingError(msg)
+        if force:
+            revlog.nodemap_file = get_nodemap_file(
+                revlog.opener, revlog.indexfile
+            )
+        else:
+            msg = "calling persist nodemap on a revlog without the feature enabled"
+            raise error.ProgrammingError(msg)
 
     can_incremental = util.safehasattr(revlog.index, "nodemap_data_incremental")
     ondisk_docket = revlog._nodemap_docket