diff -r 571f2903ff1e -r c7ceae0faf69 mercurial/bundle2.py --- a/mercurial/bundle2.py Wed Apr 02 22:37:50 2014 -0700 +++ b/mercurial/bundle2.py Mon Mar 24 19:37:59 2014 -0700 @@ -141,6 +141,7 @@ import struct import urllib import string +import StringIO import changegroup from i18n import _ @@ -524,3 +525,17 @@ # end of payload yield _pack(_fpayloadsize, 0) +@parthandler('changegroup') +def handlechangegroup(op, part): + """apply a changegroup part on the repo + + This is a very early implementation that will massive rework before being + inflicted to any end-user. + """ + data = StringIO.StringIO(part.data) + data.seek(0) + cg = changegroup.readbundle(data, 'bundle2part') + ret = changegroup.addchangegroup(op.repo, cg, 'bundle2', 'bundle2') + op.records.add('changegroup', {'return': ret}) + +