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.
This commit is contained in:
Pierre-Yves David 2014-04-17 15:45:12 -04:00
parent 005c745f17
commit fd614e4d04
3 changed files with 27 additions and 22 deletions

View File

@ -317,7 +317,7 @@ def processbundle(repo, unbundler, transactiongetter=_notransaction):
if output is not None:
output = op.ui.popbuffer()
if output:
outpart = bundlepart('output',
outpart = bundlepart('b2x:output',
advisoryparams=[('in-reply-to',
str(part.id))],
data=output)
@ -676,7 +676,7 @@ class unbundlepart(unpackermixin):
return data
@parthandler('changegroup')
@parthandler('b2x:changegroup')
def handlechangegroup(op, inpart):
"""apply a changegroup part on the repo
@ -695,19 +695,19 @@ def handlechangegroup(op, inpart):
if op.reply is not None:
# This is definitly not the final form of this
# return. But one need to start somewhere.
part = bundlepart('reply:changegroup', (),
part = bundlepart('b2x:reply:changegroup', (),
[('in-reply-to', str(inpart.id)),
('return', '%i' % ret)])
op.reply.addpart(part)
assert not inpart.read()
@parthandler('reply:changegroup')
@parthandler('b2x:reply:changegroup')
def handlechangegroup(op, inpart):
p = dict(inpart.advisoryparams)
ret = int(p['return'])
op.records.add('changegroup', {'return': ret}, int(p['in-reply-to']))
@parthandler('check:heads')
@parthandler('b2x:check:heads')
def handlechangegroup(op, inpart):
"""check that head of the repo did not change
@ -722,13 +722,13 @@ def handlechangegroup(op, inpart):
if heads != op.repo.heads():
raise exchange.PushRaced()
@parthandler('output')
@parthandler('b2x:output')
def handleoutput(op, inpart):
"""forward output captured on the server to the client"""
for line in inpart.read().splitlines():
op.ui.write(('remote: %s\n' % line))
@parthandler('replycaps')
@parthandler('b2x:replycaps')
def handlereplycaps(op, inpart):
"""Notify that a reply bundle should be created

View File

@ -212,13 +212,14 @@ def _pushbundle2(pushop):
bundler = bundle2.bundle20(pushop.ui, caps)
# create reply capability
capsblob = bundle2.encodecaps(pushop.repo.bundle2caps)
bundler.addpart(bundle2.bundlepart('replycaps', data=capsblob))
bundler.addpart(bundle2.bundlepart('b2x:replycaps', data=capsblob))
if not pushop.force:
part = bundle2.bundlepart('CHECK:HEADS', data=iter(pushop.remoteheads))
part = bundle2.bundlepart('B2X:CHECK:HEADS',
data=iter(pushop.remoteheads))
bundler.addpart(part)
# add the changegroup bundle
cg = changegroup.getlocalbundle(pushop.repo, 'push', pushop.outgoing)
cgpart = bundle2.bundlepart('CHANGEGROUP', data=cg.getchunks())
cgpart = bundle2.bundlepart('B2X:CHANGEGROUP', data=cg.getchunks())
bundler.addpart(cgpart)
stream = util.chunkbuffer(bundler.getchunks())
reply = pushop.remote.unbundle(stream, ['force'], 'push')
@ -668,7 +669,7 @@ def getbundle(repo, source, heads=None, common=None, bundlecaps=None):
blob = urllib.unquote(bcaps[len('bundle2='):])
b2caps.update(bundle2.decodecaps(blob))
bundler = bundle2.bundle20(repo.ui, b2caps)
part = bundle2.bundlepart('changegroup', data=cg.getchunks())
part = bundle2.bundlepart('b2x:changegroup', data=cg.getchunks())
bundler.addpart(part)
return util.chunkbuffer(bundler.getchunks())

View File

@ -73,7 +73,7 @@ Create an extension to test bundle2 API
>
> if opts['reply']:
> capsstring = 'ping-pong\nelephants=babar,celeste\ncity%3D%21=celeste%2Cville'
> bundler.addpart(bundle2.bundlepart('replycaps', data=capsstring))
> bundler.addpart(bundle2.bundlepart('b2x:replycaps', data=capsstring))
>
> revs = opts['rev']
> if 'rev' in opts:
@ -85,7 +85,7 @@ Create an extension to test bundle2 API
> headcommon = [c.node() for c in repo.set('parents(%ld) - %ld', revs, revs)]
> outgoing = discovery.outgoing(repo.changelog, headcommon, headmissing)
> cg = changegroup.getlocalbundle(repo, 'test:bundle2', outgoing, None)
> part = bundle2.bundlepart('changegroup', data=cg.getchunks())
> part = bundle2.bundlepart('b2x:changegroup', data=cg.getchunks())
> bundler.addpart(part)
>
> if opts['parts']:
@ -543,18 +543,21 @@ unbundle with a reply
The reply is a bundle
$ cat ../reply.hg2
HG2X\x00\x00\x00\x1b\x06output\x00\x00\x00\x00\x00\x01\x0b\x01in-reply-to3\x00\x00\x00\xd9The choir starts singing: (esc)
HG2X\x00\x00\x00\x1f (esc)
b2x:output\x00\x00\x00\x00\x00\x01\x0b\x01in-reply-to3\x00\x00\x00\xd9The choir starts singing: (esc)
Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.
\x00\x00\x00\x00\x00\x1b\x06output\x00\x00\x00\x01\x00\x01\x0b\x01in-reply-to4\x00\x00\x00\xc9debugreply: capabilities: (esc)
\x00\x00\x00\x00\x00\x1f (esc)
b2x:output\x00\x00\x00\x01\x00\x01\x0b\x01in-reply-to4\x00\x00\x00\xc9debugreply: capabilities: (esc)
debugreply: 'city=!'
debugreply: 'celeste,ville'
debugreply: 'elephants'
debugreply: 'babar'
debugreply: 'celeste'
debugreply: 'ping-pong'
\x00\x00\x00\x00\x00\x1e test:pong\x00\x00\x00\x02\x01\x00\x0b\x01in-reply-to6\x00\x00\x00\x00\x00\x1b\x06output\x00\x00\x00\x03\x00\x01\x0b\x01in-reply-to6\x00\x00\x00=received ping request (id 6) (esc)
\x00\x00\x00\x00\x00\x1e test:pong\x00\x00\x00\x02\x01\x00\x0b\x01in-reply-to6\x00\x00\x00\x00\x00\x1f (esc)
b2x:output\x00\x00\x00\x03\x00\x01\x0b\x01in-reply-to6\x00\x00\x00=received ping request (id 6) (esc)
replying to ping request (id 6)
\x00\x00\x00\x00\x00\x00 (no-eol) (esc)
@ -562,11 +565,11 @@ The reply is valid
$ hg statbundle2 < ../reply.hg2
options count: 0
:output:
:b2x:output:
mandatory: 0
advisory: 1
payload: 217 bytes
:output:
:b2x:output:
mandatory: 0
advisory: 1
payload: 201 bytes
@ -574,7 +577,7 @@ The reply is valid
mandatory: 1
advisory: 0
payload: 0 bytes
:output:
:b2x:output:
mandatory: 0
advisory: 1
payload: 61 bytes
@ -672,7 +675,7 @@ Support for changegroup
start emission of HG2X stream
bundle parameter:
start of parts
bundle part: "changegroup"
bundle part: "b2x:changegroup"
bundling: 1/4 changesets (25.00%)
bundling: 2/4 changesets (50.00%)
bundling: 3/4 changesets (75.00%)
@ -687,7 +690,7 @@ Support for changegroup
end of bundle
$ cat ../rev.hg2
HG2X\x00\x00\x00\x12\x0bchangegroup\x00\x00\x00\x00\x00\x00\x00\x00\x06\x13\x00\x00\x00\xa42\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j_\xdd\xd9\x89W\xc8\xa5JMCm\xfe\x1d\xa9\xd8\x7f!\xa1\xb9{\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)6e1f4c47ecb533ffd0c8e52cdc88afb6cd39e20c (esc)
HG2X\x00\x00\x00\x16\x0fb2x:changegroup\x00\x00\x00\x00\x00\x00\x00\x00\x06\x13\x00\x00\x00\xa42\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j_\xdd\xd9\x89W\xc8\xa5JMCm\xfe\x1d\xa9\xd8\x7f!\xa1\xb9{\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)6e1f4c47ecb533ffd0c8e52cdc88afb6cd39e20c (esc)
\x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02D (esc)
\x00\x00\x00i\x00\x00\x00j\x00\x00\x00\x01D\x00\x00\x00\xa4\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\xcd\x01\x0b\x8c\xd9\x98\xf3\x98\x1aZ\x81\x15\xf9O\x8d\xa4\xabP`\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)4dece9c826f69490507b98c6383a3009b295837d (esc)
\x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02E (esc)
@ -726,7 +729,8 @@ with reply
addchangegroup return: 1
$ cat ../rev-reply.hg2
HG2X\x00\x00\x00/\x11reply:changegroup\x00\x00\x00\x00\x00\x02\x0b\x01\x06\x01in-reply-to1return1\x00\x00\x00\x00\x00\x1b\x06output\x00\x00\x00\x01\x00\x01\x0b\x01in-reply-to1\x00\x00\x00dadding changesets (esc)
HG2X\x00\x00\x003\x15b2x:reply:changegroup\x00\x00\x00\x00\x00\x02\x0b\x01\x06\x01in-reply-to1return1\x00\x00\x00\x00\x00\x1f (esc)
b2x:output\x00\x00\x00\x01\x00\x01\x0b\x01in-reply-to1\x00\x00\x00dadding changesets (esc)
adding manifests
adding file changes
added 0 changesets with 0 changes to 3 files