# HG changeset patch # User Pierre-Yves David # Date 1397329015 14400 # Node ID dda41da069a49b7dc68b7fe8d01c3b58ba315ff6 # Parent c93bb6a08fa1e9bba6e3b38a368c5961b77f0ebe bundle2: lazily generate the changegroup part in exchange.getbundle Now that we have lazy generation of parts, let's use it. diff -r c93bb6a08fa1 -r dda41da069a4 mercurial/exchange.py --- a/mercurial/exchange.py Fri Apr 11 08:04:16 2014 -0700 +++ b/mercurial/exchange.py Sat Apr 12 14:56:55 2014 -0400 @@ -601,9 +601,11 @@ # very crude first implementation, # the bundle API will change and the generation will be done lazily. bundler = bundle2.bundle20(repo.ui) - tempname = changegroup.writebundle(cg, None, 'HG10UN') - data = open(tempname).read() - part = bundle2.part('changegroup', data=data) + def cgchunks(cg=cg): + yield 'HG10UN' + for c in cg.getchunks(): + yield c + part = bundle2.part('changegroup', data=cgchunks()) bundler.addpart(part) temp = cStringIO.StringIO() for c in bundler.getchunks():