Mercurial > hg
comparison mercurial/bundle2.py @ 21146:4676135ac555
bundle2: move all parts into a `bx2` namespace
All currently core parts are moved to a `bx2` namespace (for "bundle 2
experimental"). This should avoid conflicts between the final stable
format and the one about to be released.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Thu, 17 Apr 2014 15:45:12 -0400 |
parents | 7a20fe8dc080 |
children | 70fcb0a71445 |
comparison
equal
deleted
inserted
replaced
21145:0c5088be66af | 21146:4676135ac555 |
---|---|
315 handler(op, part) | 315 handler(op, part) |
316 finally: | 316 finally: |
317 if output is not None: | 317 if output is not None: |
318 output = op.ui.popbuffer() | 318 output = op.ui.popbuffer() |
319 if output: | 319 if output: |
320 outpart = bundlepart('output', | 320 outpart = bundlepart('b2x:output', |
321 advisoryparams=[('in-reply-to', | 321 advisoryparams=[('in-reply-to', |
322 str(part.id))], | 322 str(part.id))], |
323 data=output) | 323 data=output) |
324 op.reply.addpart(outpart) | 324 op.reply.addpart(outpart) |
325 part.read() | 325 part.read() |
674 if size is None or len(data) < size: | 674 if size is None or len(data) < size: |
675 self.consumed = True | 675 self.consumed = True |
676 return data | 676 return data |
677 | 677 |
678 | 678 |
679 @parthandler('changegroup') | 679 @parthandler('b2x:changegroup') |
680 def handlechangegroup(op, inpart): | 680 def handlechangegroup(op, inpart): |
681 """apply a changegroup part on the repo | 681 """apply a changegroup part on the repo |
682 | 682 |
683 This is a very early implementation that will massive rework before being | 683 This is a very early implementation that will massive rework before being |
684 inflicted to any end-user. | 684 inflicted to any end-user. |
693 ret = changegroup.addchangegroup(op.repo, cg, 'bundle2', 'bundle2') | 693 ret = changegroup.addchangegroup(op.repo, cg, 'bundle2', 'bundle2') |
694 op.records.add('changegroup', {'return': ret}) | 694 op.records.add('changegroup', {'return': ret}) |
695 if op.reply is not None: | 695 if op.reply is not None: |
696 # This is definitly not the final form of this | 696 # This is definitly not the final form of this |
697 # return. But one need to start somewhere. | 697 # return. But one need to start somewhere. |
698 part = bundlepart('reply:changegroup', (), | 698 part = bundlepart('b2x:reply:changegroup', (), |
699 [('in-reply-to', str(inpart.id)), | 699 [('in-reply-to', str(inpart.id)), |
700 ('return', '%i' % ret)]) | 700 ('return', '%i' % ret)]) |
701 op.reply.addpart(part) | 701 op.reply.addpart(part) |
702 assert not inpart.read() | 702 assert not inpart.read() |
703 | 703 |
704 @parthandler('reply:changegroup') | 704 @parthandler('b2x:reply:changegroup') |
705 def handlechangegroup(op, inpart): | 705 def handlechangegroup(op, inpart): |
706 p = dict(inpart.advisoryparams) | 706 p = dict(inpart.advisoryparams) |
707 ret = int(p['return']) | 707 ret = int(p['return']) |
708 op.records.add('changegroup', {'return': ret}, int(p['in-reply-to'])) | 708 op.records.add('changegroup', {'return': ret}, int(p['in-reply-to'])) |
709 | 709 |
710 @parthandler('check:heads') | 710 @parthandler('b2x:check:heads') |
711 def handlechangegroup(op, inpart): | 711 def handlechangegroup(op, inpart): |
712 """check that head of the repo did not change | 712 """check that head of the repo did not change |
713 | 713 |
714 This is used to detect a push race when using unbundle. | 714 This is used to detect a push race when using unbundle. |
715 This replaces the "heads" argument of unbundle.""" | 715 This replaces the "heads" argument of unbundle.""" |
720 h = inpart.read(20) | 720 h = inpart.read(20) |
721 assert not h | 721 assert not h |
722 if heads != op.repo.heads(): | 722 if heads != op.repo.heads(): |
723 raise exchange.PushRaced() | 723 raise exchange.PushRaced() |
724 | 724 |
725 @parthandler('output') | 725 @parthandler('b2x:output') |
726 def handleoutput(op, inpart): | 726 def handleoutput(op, inpart): |
727 """forward output captured on the server to the client""" | 727 """forward output captured on the server to the client""" |
728 for line in inpart.read().splitlines(): | 728 for line in inpart.read().splitlines(): |
729 op.ui.write(('remote: %s\n' % line)) | 729 op.ui.write(('remote: %s\n' % line)) |
730 | 730 |
731 @parthandler('replycaps') | 731 @parthandler('b2x:replycaps') |
732 def handlereplycaps(op, inpart): | 732 def handlereplycaps(op, inpart): |
733 """Notify that a reply bundle should be created | 733 """Notify that a reply bundle should be created |
734 | 734 |
735 The payload contains the capabilities information for the reply""" | 735 The payload contains the capabilities information for the reply""" |
736 caps = decodecaps(inpart.read()) | 736 caps = decodecaps(inpart.read()) |