store: yield phases before changelog
authorPierre-Yves David <pierre-yves.david@octobus.net>
Sun, 21 May 2023 02:16:24 +0200
changeset 50513 5a62d56e3955
parent 50512 a32d739b0ffb
child 50514 0925eaf09c8b
store: yield phases before changelog Creating the `changelog.i` file make the repository usable, so dealing with phase earlier seems better.
mercurial/store.py
tests/test-stream-bundle-v2.t
--- a/mercurial/store.py	Sun May 21 02:15:04 2023 +0200
+++ b/mercurial/store.py	Sun May 21 02:16:24 2023 +0200
@@ -686,6 +686,12 @@
                 )
 
     def top_entries(self, phase=False) -> Generator[BaseStoreEntry, None, None]:
+        if phase and self.vfs.exists(b'phaseroots'):
+            yield SimpleStoreEntry(
+                entry_path=b'phaseroots',
+                is_volatile=True,
+            )
+
         files = reversed(self._walk(b'', False))
 
         changelogs = collections.defaultdict(dict)
@@ -725,11 +731,6 @@
                     target_id=b'',
                     details=file_details,
                 )
-        if phase and self.vfs.exists(b'phaseroots'):
-            yield SimpleStoreEntry(
-                entry_path=b'phaseroots',
-                is_volatile=True,
-            )
 
     def walk(
         self, matcher=None, phase=False
--- a/tests/test-stream-bundle-v2.t	Sun May 21 02:15:04 2023 +0200
+++ b/tests/test-stream-bundle-v2.t	Sun May 21 02:16:24 2023 +0200
@@ -82,9 +82,9 @@
   adding [s] data/C.i (66 bytes)
   adding [s] data/D.i (66 bytes)
   adding [s] data/E.i (66 bytes)
+  adding [s] phaseroots (43 bytes)
   adding [s] 00manifest.i (584 bytes)
   adding [s] 00changelog.i (595 bytes)
-  adding [s] phaseroots (43 bytes)
   adding [c] branch2-served (94 bytes)
   adding [c] rbc-names-v1 (7 bytes)
   adding [c] rbc-revs-v1 (40 bytes)
@@ -139,9 +139,9 @@
   adding [s] data/C.i (66 bytes)
   adding [s] data/D.i (66 bytes)
   adding [s] data/E.i (66 bytes)
+  adding [s] phaseroots (43 bytes)
   adding [s] 00manifest.i (584 bytes)
   adding [s] 00changelog.i (595 bytes)
-  adding [s] phaseroots (43 bytes)
   adding [c] branch2-served (94 bytes)
   adding [c] rbc-names-v1 (7 bytes)
   adding [c] rbc-revs-v1 (40 bytes)