diff mercurial/exchange.py @ 21002:dda41da069a4

bundle2: lazily generate the changegroup part in exchange.getbundle Now that we have lazy generation of parts, let's use it.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Sat, 12 Apr 2014 14:56:55 -0400
parents ef377f2e0ab9
children 0f7e01e0c06f
line wrap: on
line diff
--- 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():