diff mercurial/bundle2.py @ 48653:a3cf460a6b1b

stream-clone: also filter the requirement we put in the bundle 2 We were wrongly putting irrelevant requirements in the bundle and the receiving side was getting confused, treating them as being missing while still putting them in the `requires` file. Leading do corrupted repositories. This changes fix stream-clone behavior regarding format when bundle-2 is involved, so we now also test this cases. Behavior with older version of Mercurial will be fine as they filter the requirements they get from the bundle on their side anyway. Differential Revision: https://phab.mercurial-scm.org/D12084
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 18 Jan 2022 00:19:04 +0100
parents fff5942d445f
children 6000f5b25c9b d9ed7c5e915d
line wrap: on
line diff
--- a/mercurial/bundle2.py	Mon Jan 24 12:44:20 2022 +0100
+++ b/mercurial/bundle2.py	Tue Jan 18 00:19:04 2022 +0100
@@ -1886,7 +1886,8 @@
     filecount, bytecount, it = streamclone.generatev2(
         repo, includepats, excludepats, includeobsmarkers
     )
-    requirements = _formatrequirementsspec(repo.requirements)
+    requirements = streamclone.streamed_requirements(repo)
+    requirements = _formatrequirementsspec(requirements)
     part = bundler.newpart(b'stream2', data=it)
     part.addparam(b'bytecount', b'%d' % bytecount, mandatory=True)
     part.addparam(b'filecount', b'%d' % filecount, mandatory=True)