[Updated] D11867: upgrade: move the revlog selection code lower down the chain

marmoute (Pierre-Yves David) phabricator at mercurial-scm.org
Fri Dec 10 15:46:57 UTC 2021


Closed by commit rHG6e045497b20b: upgrade: move the revlog selection code lower down the chain (authored by marmoute).
This revision was automatically updated to reflect the committed changes.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D11867?vs=31330&id=31417

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D11867/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D11867

AFFECTED FILES
  mercurial/upgrade.py

CHANGE DETAILS

diff --git a/mercurial/upgrade.py b/mercurial/upgrade.py
--- a/mercurial/upgrade.py
+++ b/mercurial/upgrade.py
@@ -45,24 +45,11 @@
         optimize = {}
     repo = repo.unfiltered()
 
-    revlogs = set(upgrade_engine.UPGRADE_ALL_REVLOGS)
     specentries = (
         (upgrade_engine.UPGRADE_CHANGELOG, changelog),
         (upgrade_engine.UPGRADE_MANIFEST, manifest),
         (upgrade_engine.UPGRADE_FILELOGS, filelogs),
     )
-    specified = [(y, x) for (y, x) in specentries if x is not None]
-    if specified:
-        # we have some limitation on revlogs to be recloned
-        if any(x for y, x in specified):
-            revlogs = set()
-            for upgrade, enabled in specified:
-                if enabled:
-                    revlogs.add(upgrade)
-        else:
-            # none are enabled
-            for upgrade, __ in specified:
-                revlogs.discard(upgrade)
 
     # Ensure the repository can be upgraded.
     upgrade_actions.check_source_requirements(repo)
@@ -99,6 +86,24 @@
     removedreqs = repo.requirements - newreqs
     addedreqs = newreqs - repo.requirements
 
+    # check if we need to touch revlog and if so, which ones
+
+    revlogs = set(upgrade_engine.UPGRADE_ALL_REVLOGS)
+    specified = [(y, x) for (y, x) in specentries if x is not None]
+    if specified:
+        # we have some limitation on revlogs to be recloned
+        if any(x for y, x in specified):
+            revlogs = set()
+            for upgrade, enabled in specified:
+                if enabled:
+                    revlogs.add(upgrade)
+        else:
+            # none are enabled
+            for upgrade, __ in specified:
+                revlogs.discard(upgrade)
+
+    # check the consistency of the revlog selection with the planned action
+
     if revlogs != upgrade_engine.UPGRADE_ALL_REVLOGS:
         incompatible = upgrade_actions.RECLONES_REQUIREMENTS & (
             removedreqs | addedreqs



To: marmoute, #hg-reviewers, Alphare
Cc: Alphare, mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20211210/2418bcfe/attachment-0002.html>


More information about the Mercurial-patches mailing list