mercurial/upgrade_utils/actions.py
changeset 49225 566066826e7c
parent 49219 04a812f507be
child 49376 7fe86498e84f
--- a/mercurial/upgrade_utils/actions.py	Tue Apr 05 05:19:47 2022 +0200
+++ b/mercurial/upgrade_utils/actions.py	Mon Apr 04 19:30:32 2022 +0200
@@ -691,7 +691,24 @@
     return newactions
 
 
-class UpgradeOperation:
+class BaseOperation:
+    """base class that contains the minimum for an upgrade to work
+
+    (this might need to be extended as the usage for subclass alternative to
+    UpgradeOperation extends)
+    """
+
+    def __init__(
+        self,
+        new_requirements,
+        backup_store,
+    ):
+        self.new_requirements = new_requirements
+        # should this operation create a backup of the store
+        self.backup_store = backup_store
+
+
+class UpgradeOperation(BaseOperation):
     """represent the work to be done during an upgrade"""
 
     def __init__(
@@ -704,8 +721,11 @@
         revlogs_to_process,
         backup_store,
     ):
+        super().__init__(
+            new_requirements,
+            backup_store,
+        )
         self.ui = ui
-        self.new_requirements = new_requirements
         self.current_requirements = current_requirements
         # list of upgrade actions the operation will perform
         self.upgrade_actions = upgrade_actions
@@ -747,9 +767,6 @@
             b're-delta-multibase' in upgrade_actions_names
         )
 
-        # should this operation create a backup of the store
-        self.backup_store = backup_store
-
     @property
     def upgrade_actions_names(self):
         return set([a.name for a in self.upgrade_actions])