diff mercurial/changelog.py @ 51090:c3748f38dcd0

revlog: create a iteration of a _InnerRevlog object within the revlog The goal of this object is to isolate a sub-API that can be implemented by a compiled object (e.g. Rust). So the boundary of this object will be arbitrary depending of what can we easily implemented in the Compiled code. For now, we start simple, and move the code that manage the IO objects in the inner object. More will come in the coming changesets. Note: the object definition could live in the different module to thin the `revlog.py` file, however there are other better candidate for extraction first and I have enought patch stacked on top of the this one for the split in this patch not to be worth it. So I leave this to future me.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 17 Oct 2023 06:02:33 +0200
parents 498afb627f78
children 594f912818ab
line wrap: on
line diff
--- a/mercurial/changelog.py	Tue Oct 17 05:17:02 2023 +0200
+++ b/mercurial/changelog.py	Tue Oct 17 06:02:33 2023 +0200
@@ -459,8 +459,9 @@
                 self.opener = _delayopener(
                     self._realopener, self._indexfile, self._delaybuf
                 )
-            self._segmentfile.opener = self.opener
-            self._segmentfile_sidedata.opener = self.opener
+            self._inner.opener = self.opener
+            self._inner._segmentfile.opener = self.opener
+            self._inner._segmentfile_sidedata.opener = self.opener
         self._delayed = True
         tr.addpending(b'cl-%i' % id(self), self._writepending)
         tr.addfinalize(b'cl-%i' % id(self), self._finalize)
@@ -469,8 +470,9 @@
         """finalize index updates"""
         self._delayed = False
         self.opener = self._realopener
-        self._segmentfile.opener = self.opener
-        self._segmentfile_sidedata.opener = self.opener
+        self._inner.opener = self.opener
+        self._inner._segmentfile.opener = self.opener
+        self._inner._segmentfile_sidedata.opener = self.opener
         # move redirected index data back into place
         if self._docket is not None:
             self._write_docket(tr)
@@ -510,8 +512,9 @@
             self._delaybuf = None
             self._divert = True
             self.opener = _divertopener(self._realopener, self._indexfile)
-            self._segmentfile.opener = self.opener
-            self._segmentfile_sidedata.opener = self.opener
+            self._inner.opener = self.opener
+            self._inner._segmentfile.opener = self.opener
+            self._inner._segmentfile_sidedata.opener = self.opener
 
         if self._divert:
             return True