diff --git a/mercurial/store.py b/mercurial/store.py --- a/mercurial/store.py +++ b/mercurial/store.py @@ -686,6 +686,12 @@ class basicstore: ) 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 @@ class basicstore: 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 --git a/tests/test-stream-bundle-v2.t b/tests/test-stream-bundle-v2.t --- a/tests/test-stream-bundle-v2.t +++ b/tests/test-stream-bundle-v2.t @@ -82,9 +82,9 @@ Test that we can apply the bundle as a s 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 @@ Test that we can apply the bundle as a s 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)