diff -r 0bba730005df -r 0452af304808 mercurial/bundle2.py --- a/mercurial/bundle2.py Thu Jun 01 18:20:28 2023 +0100 +++ b/mercurial/bundle2.py Thu Jun 01 17:39:22 2023 +0100 @@ -1952,14 +1952,12 @@ part.addparam(b'filecount', b'%d' % filecount, mandatory=True) part.addparam(b'requirements', requirements, mandatory=True) elif version == b"v3-exp": - filecount, bytecount, it = streamclone.generatev2( + it = streamclone.generatev3( repo, includepats, excludepats, includeobsmarkers ) requirements = streamclone.streamed_requirements(repo) requirements = _formatrequirementsspec(requirements) part = bundler.newpart(b'stream3-exp', data=it) - part.addparam(b'bytecount', b'%d' % bytecount, mandatory=True) - part.addparam(b'filecount', b'%d' % filecount, mandatory=True) part.addparam(b'requirements', requirements, mandatory=True) @@ -2616,9 +2614,18 @@ streamclone.applybundlev2(repo, part, filecount, bytecount, requirements) -@parthandler(b'stream3-exp', (b'requirements', b'filecount', b'bytecount')) +@parthandler(b'stream3-exp', (b'requirements',)) def handlestreamv3bundle(op, part): - return handlestreamv2bundle(op, part) + requirements = urlreq.unquote(part.params[b'requirements']) + requirements = requirements.split(b',') if requirements else [] + + repo = op.repo + if len(repo): + msg = _(b'cannot apply stream clone to non empty repository') + raise error.Abort(msg) + + repo.ui.debug(b'applying stream bundle\n') + streamclone.applybundlev3(repo, part, requirements) def widen_bundle(