mercurial/mergestate.py
changeset 45499 19590b126764
parent 45498 cc5f811b1f15
child 45500 f2efc44213ec
--- a/mercurial/mergestate.py	Tue Sep 15 11:17:24 2020 -0700
+++ b/mercurial/mergestate.py	Tue Sep 15 16:10:16 2020 -0700
@@ -801,6 +801,32 @@
         shutil.rmtree(self._repo.vfs.join(b'merge'), True)
 
 
+class memmergestate(_mergestate_base):
+    def __init__(self, repo):
+        super(memmergestate, self).__init__(repo)
+        self._backups = {}
+
+    def _make_backup(self, fctx, localkey):
+        self._backups[localkey] = fctx.data()
+
+    def _restore_backup(self, fctx, localkey, flags):
+        fctx.write(self._backups[localkey], flags)
+
+    @util.propertycache
+    def mergedriver(self):
+        configmergedriver = self._repo.ui.config(
+            b'experimental', b'mergedriver'
+        )
+        if configmergedriver:
+            raise error.InMemoryMergeConflictsError(
+                b"in-memory merge does not support mergedriver"
+            )
+        return None
+
+    def commit(self):
+        pass
+
+
 def recordupdates(repo, actions, branchmerge, getfiledata):
     """record merge actions to the dirstate"""
     # remove (must come first)