store: yield phases before changelog
Creating the `changelog.i` file make the repository usable, so dealing with phase earlier seems better.
--- 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)