Show More
@@ -151,7 +151,7 b' from i18n import _' | |||||
151 | _pack = struct.pack |
|
151 | _pack = struct.pack | |
152 | _unpack = struct.unpack |
|
152 | _unpack = struct.unpack | |
153 |
|
153 | |||
154 |
_magicstring = 'HG2 |
|
154 | _magicstring = 'HG2X' | |
155 |
|
155 | |||
156 | _fstreamparamsize = '>H' |
|
156 | _fstreamparamsize = '>H' | |
157 | _fpartheadersize = '>H' |
|
157 | _fpartheadersize = '>H' | |
@@ -456,7 +456,7 b' class unbundle20(unpackermixin):' | |||||
456 | magic, version = header[0:2], header[2:4] |
|
456 | magic, version = header[0:2], header[2:4] | |
457 | if magic != 'HG': |
|
457 | if magic != 'HG': | |
458 | raise util.Abort(_('not a Mercurial bundle')) |
|
458 | raise util.Abort(_('not a Mercurial bundle')) | |
459 |
if version != '2 |
|
459 | if version != '2X': | |
460 | raise util.Abort(_('unknown bundle version %s') % version) |
|
460 | raise util.Abort(_('unknown bundle version %s') % version) | |
461 | self.ui.debug('start processing of %s stream\n' % header) |
|
461 | self.ui.debug('start processing of %s stream\n' % header) | |
462 |
|
462 |
@@ -32,7 +32,7 b' def readbundle(ui, fh, fname, vfs=None):' | |||||
32 | if alg is None: |
|
32 | if alg is None: | |
33 | alg = changegroup.readexactly(fh, 2) |
|
33 | alg = changegroup.readexactly(fh, 2) | |
34 | return changegroup.unbundle10(fh, alg) |
|
34 | return changegroup.unbundle10(fh, alg) | |
35 |
elif version == '2 |
|
35 | elif version == '2X': | |
36 | return bundle2.unbundle20(ui, fh, header=magic + version) |
|
36 | return bundle2.unbundle20(ui, fh, header=magic + version) | |
37 | else: |
|
37 | else: | |
38 | raise util.Abort(_('%s: unknown bundle version %s') % (fname, version)) |
|
38 | raise util.Abort(_('%s: unknown bundle version %s') % (fname, version)) | |
@@ -545,7 +545,7 b' def _pullbundle2(pullop):' | |||||
545 | """pull data using bundle2 |
|
545 | """pull data using bundle2 | |
546 |
|
546 | |||
547 | For now, the only supported data are changegroup.""" |
|
547 | For now, the only supported data are changegroup.""" | |
548 |
kwargs = {'bundlecaps': set(['HG2 |
|
548 | kwargs = {'bundlecaps': set(['HG2X'])} | |
549 | capsblob = bundle2.encodecaps(pullop.repo.bundle2caps) |
|
549 | capsblob = bundle2.encodecaps(pullop.repo.bundle2caps) | |
550 | kwargs['bundlecaps'].add('bundle2=' + urllib.quote(capsblob)) |
|
550 | kwargs['bundlecaps'].add('bundle2=' + urllib.quote(capsblob)) | |
551 | # pulling changegroup |
|
551 | # pulling changegroup | |
@@ -644,7 +644,7 b' def _pullobsolete(pullop):' | |||||
644 | def getbundle(repo, source, heads=None, common=None, bundlecaps=None): |
|
644 | def getbundle(repo, source, heads=None, common=None, bundlecaps=None): | |
645 | """return a full bundle (with potentially multiple kind of parts) |
|
645 | """return a full bundle (with potentially multiple kind of parts) | |
646 |
|
646 | |||
647 |
Could be a bundle HG10 or a bundle HG2 |
|
647 | Could be a bundle HG10 or a bundle HG2X depending on bundlecaps | |
648 | passed. For now, the bundle can contain only changegroup, but this will |
|
648 | passed. For now, the bundle can contain only changegroup, but this will | |
649 | changes when more part type will be available for bundle2. |
|
649 | changes when more part type will be available for bundle2. | |
650 |
|
650 | |||
@@ -658,7 +658,7 b' def getbundle(repo, source, heads=None, ' | |||||
658 | # build bundle here. |
|
658 | # build bundle here. | |
659 | cg = changegroup.getbundle(repo, source, heads=heads, |
|
659 | cg = changegroup.getbundle(repo, source, heads=heads, | |
660 | common=common, bundlecaps=bundlecaps) |
|
660 | common=common, bundlecaps=bundlecaps) | |
661 |
if bundlecaps is None or 'HG2 |
|
661 | if bundlecaps is None or 'HG2X' not in bundlecaps: | |
662 | return cg |
|
662 | return cg | |
663 | # very crude first implementation, |
|
663 | # very crude first implementation, | |
664 | # the bundle API will change and the generation will be done lazily. |
|
664 | # the bundle API will change and the generation will be done lazily. |
@@ -109,7 +109,7 b' class localpeer(peer.peerrepository):' | |||||
109 | format='HG10'): |
|
109 | format='HG10'): | |
110 | cg = exchange.getbundle(self._repo, source, heads=heads, |
|
110 | cg = exchange.getbundle(self._repo, source, heads=heads, | |
111 | common=common, bundlecaps=bundlecaps) |
|
111 | common=common, bundlecaps=bundlecaps) | |
112 |
if bundlecaps is not None and 'HG2 |
|
112 | if bundlecaps is not None and 'HG2X' in bundlecaps: | |
113 | # When requesting a bundle2, getbundle returns a stream to make the |
|
113 | # When requesting a bundle2, getbundle returns a stream to make the | |
114 | # wire level function happier. We need to build a proper object |
|
114 | # wire level function happier. We need to build a proper object | |
115 | # from it in local peer. |
|
115 | # from it in local peer. | |
@@ -180,7 +180,7 b' class localrepository(object):' | |||||
180 | requirements = ['revlogv1'] |
|
180 | requirements = ['revlogv1'] | |
181 | filtername = None |
|
181 | filtername = None | |
182 |
|
182 | |||
183 |
bundle2caps = {'HG2 |
|
183 | bundle2caps = {'HG2X': ()} | |
184 |
|
184 | |||
185 | # a list of (ui, featureset) functions. |
|
185 | # a list of (ui, featureset) functions. | |
186 | # only functions defined in module of enabled extensions are invoked |
|
186 | # only functions defined in module of enabled extensions are invoked |
@@ -335,7 +335,7 b' class wirepeer(peer.peerrepository):' | |||||
335 | if bundlecaps is not None: |
|
335 | if bundlecaps is not None: | |
336 | opts['bundlecaps'] = ','.join(bundlecaps) |
|
336 | opts['bundlecaps'] = ','.join(bundlecaps) | |
337 | f = self._callcompressable("getbundle", **opts) |
|
337 | f = self._callcompressable("getbundle", **opts) | |
338 |
if bundlecaps is not None and 'HG2 |
|
338 | if bundlecaps is not None and 'HG2X' in bundlecaps: | |
339 | return bundle2.unbundle20(self.ui, f) |
|
339 | return bundle2.unbundle20(self.ui, f) | |
340 | else: |
|
340 | else: | |
341 | return changegroupmod.unbundle10(f, 'UN') |
|
341 | return changegroupmod.unbundle10(f, 'UN') |
@@ -201,7 +201,7 b' Empty bundle' | |||||
201 | Test bundling |
|
201 | Test bundling | |
202 |
|
202 | |||
203 | $ hg bundle2 |
|
203 | $ hg bundle2 | |
204 |
HG2 |
|
204 | HG2X\x00\x00\x00\x00 (no-eol) (esc) | |
205 |
|
205 | |||
206 | Test unbundling |
|
206 | Test unbundling | |
207 |
|
207 | |||
@@ -231,7 +231,7 b' Simplest possible parameters form' | |||||
231 | Test generation simple option |
|
231 | Test generation simple option | |
232 |
|
232 | |||
233 | $ hg bundle2 --param 'caution' |
|
233 | $ hg bundle2 --param 'caution' | |
234 |
HG2 |
|
234 | HG2X\x00\x07caution\x00\x00 (no-eol) (esc) | |
235 |
|
235 | |||
236 | Test unbundling |
|
236 | Test unbundling | |
237 |
|
237 | |||
@@ -243,7 +243,7 b' Test unbundling' | |||||
243 | Test generation multiple option |
|
243 | Test generation multiple option | |
244 |
|
244 | |||
245 | $ hg bundle2 --param 'caution' --param 'meal' |
|
245 | $ hg bundle2 --param 'caution' --param 'meal' | |
246 |
HG2 |
|
246 | HG2X\x00\x0ccaution meal\x00\x00 (no-eol) (esc) | |
247 |
|
247 | |||
248 | Test unbundling |
|
248 | Test unbundling | |
249 |
|
249 | |||
@@ -259,7 +259,7 b' advisory parameters, with value' | |||||
259 | Test generation |
|
259 | Test generation | |
260 |
|
260 | |||
261 | $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' |
|
261 | $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' | |
262 |
HG2 |
|
262 | HG2X\x00\x1ccaution meal=vegan elephants\x00\x00 (no-eol) (esc) | |
263 |
|
263 | |||
264 | Test unbundling |
|
264 | Test unbundling | |
265 |
|
265 | |||
@@ -277,7 +277,7 b' parameter with special char in value' | |||||
277 | Test generation |
|
277 | Test generation | |
278 |
|
278 | |||
279 | $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple |
|
279 | $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple | |
280 |
HG2 |
|
280 | HG2X\x00)e%7C%21%207/=babar%25%23%3D%3Dtutu simple\x00\x00 (no-eol) (esc) | |
281 |
|
281 | |||
282 | Test unbundling |
|
282 | Test unbundling | |
283 |
|
283 | |||
@@ -301,7 +301,7 b' Test debug output' | |||||
301 | bundling debug |
|
301 | bundling debug | |
302 |
|
302 | |||
303 | $ hg bundle2 --debug --param 'e|! 7/=babar%#==tutu' --param simple ../out.hg2 |
|
303 | $ hg bundle2 --debug --param 'e|! 7/=babar%#==tutu' --param simple ../out.hg2 | |
304 |
start emission of HG2 |
|
304 | start emission of HG2X stream | |
305 | bundle parameter: e%7C%21%207/=babar%25%23%3D%3Dtutu simple |
|
305 | bundle parameter: e%7C%21%207/=babar%25%23%3D%3Dtutu simple | |
306 | start of parts |
|
306 | start of parts | |
307 | end of bundle |
|
307 | end of bundle | |
@@ -309,12 +309,12 b' bundling debug' | |||||
309 | file content is ok |
|
309 | file content is ok | |
310 |
|
310 | |||
311 | $ cat ../out.hg2 |
|
311 | $ cat ../out.hg2 | |
312 |
HG2 |
|
312 | HG2X\x00)e%7C%21%207/=babar%25%23%3D%3Dtutu simple\x00\x00 (no-eol) (esc) | |
313 |
|
313 | |||
314 | unbundling debug |
|
314 | unbundling debug | |
315 |
|
315 | |||
316 | $ hg statbundle2 --debug < ../out.hg2 |
|
316 | $ hg statbundle2 --debug < ../out.hg2 | |
317 |
start processing of HG2 |
|
317 | start processing of HG2X stream | |
318 | reading bundle2 stream parameters |
|
318 | reading bundle2 stream parameters | |
319 | ignoring unknown parameter 'e|! 7/' |
|
319 | ignoring unknown parameter 'e|! 7/' | |
320 | ignoring unknown parameter 'simple' |
|
320 | ignoring unknown parameter 'simple' | |
@@ -348,7 +348,7 b' Test part' | |||||
348 | ================= |
|
348 | ================= | |
349 |
|
349 | |||
350 | $ hg bundle2 --parts ../parts.hg2 --debug |
|
350 | $ hg bundle2 --parts ../parts.hg2 --debug | |
351 |
start emission of HG2 |
|
351 | start emission of HG2X stream | |
352 | bundle parameter: |
|
352 | bundle parameter: | |
353 | start of parts |
|
353 | start of parts | |
354 | bundle part: "test:empty" |
|
354 | bundle part: "test:empty" | |
@@ -360,7 +360,7 b' Test part' | |||||
360 | end of bundle |
|
360 | end of bundle | |
361 |
|
361 | |||
362 | $ cat ../parts.hg2 |
|
362 | $ cat ../parts.hg2 | |
363 |
HG2 |
|
363 | HG2X\x00\x00\x00\x11 (esc) | |
364 | test:empty\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11 (esc) |
|
364 | test:empty\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11 (esc) | |
365 | test:empty\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x10 test:song\x00\x00\x00\x02\x00\x00\x00\x00\x00\xb2Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko (esc) |
|
365 | test:empty\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x10 test:song\x00\x00\x00\x02\x00\x00\x00\x00\x00\xb2Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko (esc) | |
366 | Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko |
|
366 | Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko | |
@@ -396,7 +396,7 b' Test part' | |||||
396 | parts count: 6 |
|
396 | parts count: 6 | |
397 |
|
397 | |||
398 | $ hg statbundle2 --debug < ../parts.hg2 |
|
398 | $ hg statbundle2 --debug < ../parts.hg2 | |
399 |
start processing of HG2 |
|
399 | start processing of HG2X stream | |
400 | reading bundle2 stream parameters |
|
400 | reading bundle2 stream parameters | |
401 | options count: 0 |
|
401 | options count: 0 | |
402 | start extraction of bundle2 parts |
|
402 | start extraction of bundle2 parts | |
@@ -466,7 +466,7 b' Test actual unbundling of test part' | |||||
466 | Process the bundle |
|
466 | Process the bundle | |
467 |
|
467 | |||
468 | $ hg unbundle2 --debug < ../parts.hg2 |
|
468 | $ hg unbundle2 --debug < ../parts.hg2 | |
469 |
start processing of HG2 |
|
469 | start processing of HG2X stream | |
470 | reading bundle2 stream parameters |
|
470 | reading bundle2 stream parameters | |
471 | start extraction of bundle2 parts |
|
471 | start extraction of bundle2 parts | |
472 | part header size: 17 |
|
472 | part header size: 17 | |
@@ -543,7 +543,7 b' unbundle with a reply' | |||||
543 | The reply is a bundle |
|
543 | The reply is a bundle | |
544 |
|
544 | |||
545 | $ cat ../reply.hg2 |
|
545 | $ cat ../reply.hg2 | |
546 |
HG2 |
|
546 | HG2X\x00\x00\x00\x1b\x06output\x00\x00\x00\x00\x00\x01\x0b\x01in-reply-to3\x00\x00\x00\xd9The choir starts singing: (esc) | |
547 | Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko |
|
547 | Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko | |
548 | Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko |
|
548 | Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko | |
549 | Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko. |
|
549 | Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko. | |
@@ -669,7 +669,7 b' Support for changegroup' | |||||
669 | 9520eea781bcca16c1e15acc0ba14335a0e8e5ba |
|
669 | 9520eea781bcca16c1e15acc0ba14335a0e8e5ba | |
670 | eea13746799a9e0bfd88f29d3c2e9dc9389f524f |
|
670 | eea13746799a9e0bfd88f29d3c2e9dc9389f524f | |
671 | 02de42196ebee42ef284b6780a87cdc96e8eaab6 |
|
671 | 02de42196ebee42ef284b6780a87cdc96e8eaab6 | |
672 |
start emission of HG2 |
|
672 | start emission of HG2X stream | |
673 | bundle parameter: |
|
673 | bundle parameter: | |
674 | start of parts |
|
674 | start of parts | |
675 | bundle part: "changegroup" |
|
675 | bundle part: "changegroup" | |
@@ -687,7 +687,7 b' Support for changegroup' | |||||
687 | end of bundle |
|
687 | end of bundle | |
688 |
|
688 | |||
689 | $ cat ../rev.hg2 |
|
689 | $ cat ../rev.hg2 | |
690 |
HG2 |
|
690 | 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) | |
691 | \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02D (esc) |
|
691 | \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02D (esc) | |
692 | \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) |
|
692 | \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) | |
693 | \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02E (esc) |
|
693 | \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02E (esc) | |
@@ -726,7 +726,7 b' with reply' | |||||
726 | addchangegroup return: 1 |
|
726 | addchangegroup return: 1 | |
727 |
|
727 | |||
728 | $ cat ../rev-reply.hg2 |
|
728 | $ cat ../rev-reply.hg2 | |
729 |
HG2 |
|
729 | 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) | |
730 | adding manifests |
|
730 | adding manifests | |
731 | adding file changes |
|
731 | adding file changes | |
732 | added 0 changesets with 0 changes to 3 files |
|
732 | added 0 changesets with 0 changes to 3 files |
General Comments 0
You need to be logged in to leave comments.
Login now