# HG changeset patch # User Pierre-Yves David # Date 1684628184 -7200 # Node ID 5a62d56e395570cc1dae80a4d310d91862c3cc4e # Parent a32d739b0ffbd9fdfede54081d419658218b3f77 store: yield phases before changelog Creating the `changelog.i` file make the repository usable, so dealing with phase earlier seems better. diff -r a32d739b0ffb -r 5a62d56e3955 mercurial/store.py --- 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 diff -r a32d739b0ffb -r 5a62d56e3955 tests/test-stream-bundle-v2.t --- 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)