nodemap: make sure the nodemap docket is updated after the changelog
authorPierre-Yves David <pierre-yves.david@octobus.net>
Fri, 28 Feb 2020 00:31:14 +0100
changeset 44517 448d700e0d27
parent 44516 64e2f603de9d
child 44518 b2e41723f886
nodemap: make sure the nodemap docket is updated after the changelog It is better to have a lagging nodemap than a nodemap pointing to node that does not exists yet. (strictly speaking, the order was already right, however we make it more explicit). Differential Revision: https://phab.mercurial-scm.org/D8188
mercurial/revlogutils/nodemap.py
--- a/mercurial/revlogutils/nodemap.py	Fri Feb 28 00:29:18 2020 +0100
+++ b/mercurial/revlogutils/nodemap.py	Fri Feb 28 00:31:14 2020 +0100
@@ -72,7 +72,9 @@
         return  # inlined revlog are too small for this to be relevant
     if revlog.nodemap_file is None:
         return  # we do not use persistent_nodemap on this revlog
-    callback_id = b"revlog-persistent-nodemap-%s" % revlog.nodemap_file
+
+    # we need to happen after the changelog finalization, in that use "cl-"
+    callback_id = b"nm-revlog-persistent-nodemap-%s" % revlog.nodemap_file
     if tr.hasfinalize(callback_id):
         return  # no need to register again
     tr.addpending(