diff mercurial/changelog.py @ 45571:7543b5072e84

sidedata: add a `decode_files_sidedata` function Right now the function mostly gather existing code to build a consistent object. However having this function allow us prepare all user code independently from the actual side data format change (and associated encoding/decoding changes) Strictly speaking, we could not need to passe the sidedata explicitly since we have access to it though the `changelogrevision` object. However, the short term goal is to drop that first parameter to only pass the sidedata binaries.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 23 Sep 2020 15:13:44 +0200
parents 9a3563b46f52
children 48c93a0b2acb
line wrap: on
line diff
--- a/mercurial/changelog.py	Tue Sep 15 15:37:32 2020 +0200
+++ b/mercurial/changelog.py	Wed Sep 23 15:13:44 2020 +0200
@@ -306,13 +306,16 @@
     def changes(self):
         if self._changes is not None:
             return self._changes
-        changes = metadata.ChangingFiles(
-            touched=self.files or (),
-            added=self.filesadded or (),
-            removed=self.filesremoved or (),
-            p1_copies=self.p1copies or {},
-            p2_copies=self.p2copies or {},
-        )
+        if self._cpsd:
+            changes = metadata.decode_files_sidedata(self, self._sidedata)
+        else:
+            changes = metadata.ChangingFiles(
+                touched=self.files or (),
+                added=self.filesadded or (),
+                removed=self.filesremoved or (),
+                p1_copies=self.p1copies or {},
+                p2_copies=self.p2copies or {},
+            )
         self._changes = changes
         return changes