##// END OF EJS Templates
tests: fix test-bundle2-format output...
Matt Mackall -
r26406:2cac6126 default
parent child Browse files
Show More
@@ -1,1223 +1,1223 b''
1 This test is dedicated to test the bundle2 container format
1 This test is dedicated to test the bundle2 container format
2
2
3 It test multiple existing parts to test different feature of the container. You
3 It test multiple existing parts to test different feature of the container. You
4 probably do not need to touch this test unless you change the binary encoding
4 probably do not need to touch this test unless you change the binary encoding
5 of the bundle2 format itself.
5 of the bundle2 format itself.
6
6
7 Create an extension to test bundle2 API
7 Create an extension to test bundle2 API
8
8
9 $ cat > bundle2.py << EOF
9 $ cat > bundle2.py << EOF
10 > """A small extension to test bundle2 implementation
10 > """A small extension to test bundle2 implementation
11 >
11 >
12 > Current bundle2 implementation is far too limited to be used in any core
12 > Current bundle2 implementation is far too limited to be used in any core
13 > code. We still need to be able to test it while it grow up.
13 > code. We still need to be able to test it while it grow up.
14 > """
14 > """
15 >
15 >
16 > import sys, os
16 > import sys, os
17 > from mercurial import cmdutil
17 > from mercurial import cmdutil
18 > from mercurial import util
18 > from mercurial import util
19 > from mercurial import bundle2
19 > from mercurial import bundle2
20 > from mercurial import scmutil
20 > from mercurial import scmutil
21 > from mercurial import discovery
21 > from mercurial import discovery
22 > from mercurial import changegroup
22 > from mercurial import changegroup
23 > from mercurial import error
23 > from mercurial import error
24 > from mercurial import obsolete
24 > from mercurial import obsolete
25 >
25 >
26 >
26 >
27 > try:
27 > try:
28 > import msvcrt
28 > import msvcrt
29 > msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
29 > msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
30 > msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
30 > msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
31 > msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
31 > msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
32 > except ImportError:
32 > except ImportError:
33 > pass
33 > pass
34 >
34 >
35 > cmdtable = {}
35 > cmdtable = {}
36 > command = cmdutil.command(cmdtable)
36 > command = cmdutil.command(cmdtable)
37 >
37 >
38 > ELEPHANTSSONG = """Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
38 > ELEPHANTSSONG = """Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
39 > Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
39 > Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
40 > Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko."""
40 > Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko."""
41 > assert len(ELEPHANTSSONG) == 178 # future test say 178 bytes, trust it.
41 > assert len(ELEPHANTSSONG) == 178 # future test say 178 bytes, trust it.
42 >
42 >
43 > @bundle2.parthandler('test:song')
43 > @bundle2.parthandler('test:song')
44 > def songhandler(op, part):
44 > def songhandler(op, part):
45 > """handle a "test:song" bundle2 part, printing the lyrics on stdin"""
45 > """handle a "test:song" bundle2 part, printing the lyrics on stdin"""
46 > op.ui.write('The choir starts singing:\n')
46 > op.ui.write('The choir starts singing:\n')
47 > verses = 0
47 > verses = 0
48 > for line in part.read().split('\n'):
48 > for line in part.read().split('\n'):
49 > op.ui.write(' %s\n' % line)
49 > op.ui.write(' %s\n' % line)
50 > verses += 1
50 > verses += 1
51 > op.records.add('song', {'verses': verses})
51 > op.records.add('song', {'verses': verses})
52 >
52 >
53 > @bundle2.parthandler('test:ping')
53 > @bundle2.parthandler('test:ping')
54 > def pinghandler(op, part):
54 > def pinghandler(op, part):
55 > op.ui.write('received ping request (id %i)\n' % part.id)
55 > op.ui.write('received ping request (id %i)\n' % part.id)
56 > if op.reply is not None and 'ping-pong' in op.reply.capabilities:
56 > if op.reply is not None and 'ping-pong' in op.reply.capabilities:
57 > op.ui.write_err('replying to ping request (id %i)\n' % part.id)
57 > op.ui.write_err('replying to ping request (id %i)\n' % part.id)
58 > op.reply.newpart('test:pong', [('in-reply-to', str(part.id))],
58 > op.reply.newpart('test:pong', [('in-reply-to', str(part.id))],
59 > mandatory=False)
59 > mandatory=False)
60 >
60 >
61 > @bundle2.parthandler('test:debugreply')
61 > @bundle2.parthandler('test:debugreply')
62 > def debugreply(op, part):
62 > def debugreply(op, part):
63 > """print data about the capacity of the bundle reply"""
63 > """print data about the capacity of the bundle reply"""
64 > if op.reply is None:
64 > if op.reply is None:
65 > op.ui.write('debugreply: no reply\n')
65 > op.ui.write('debugreply: no reply\n')
66 > else:
66 > else:
67 > op.ui.write('debugreply: capabilities:\n')
67 > op.ui.write('debugreply: capabilities:\n')
68 > for cap in sorted(op.reply.capabilities):
68 > for cap in sorted(op.reply.capabilities):
69 > op.ui.write('debugreply: %r\n' % cap)
69 > op.ui.write('debugreply: %r\n' % cap)
70 > for val in op.reply.capabilities[cap]:
70 > for val in op.reply.capabilities[cap]:
71 > op.ui.write('debugreply: %r\n' % val)
71 > op.ui.write('debugreply: %r\n' % val)
72 >
72 >
73 > @command('bundle2',
73 > @command('bundle2',
74 > [('', 'param', [], 'stream level parameter'),
74 > [('', 'param', [], 'stream level parameter'),
75 > ('', 'unknown', False, 'include an unknown mandatory part in the bundle'),
75 > ('', 'unknown', False, 'include an unknown mandatory part in the bundle'),
76 > ('', 'unknownparams', False, 'include an unknown part parameters in the bundle'),
76 > ('', 'unknownparams', False, 'include an unknown part parameters in the bundle'),
77 > ('', 'parts', False, 'include some arbitrary parts to the bundle'),
77 > ('', 'parts', False, 'include some arbitrary parts to the bundle'),
78 > ('', 'reply', False, 'produce a reply bundle'),
78 > ('', 'reply', False, 'produce a reply bundle'),
79 > ('', 'pushrace', False, 'includes a check:head part with unknown nodes'),
79 > ('', 'pushrace', False, 'includes a check:head part with unknown nodes'),
80 > ('', 'genraise', False, 'includes a part that raise an exception during generation'),
80 > ('', 'genraise', False, 'includes a part that raise an exception during generation'),
81 > ('', 'timeout', False, 'emulate a timeout during bundle generation'),
81 > ('', 'timeout', False, 'emulate a timeout during bundle generation'),
82 > ('r', 'rev', [], 'includes those changeset in the bundle'),
82 > ('r', 'rev', [], 'includes those changeset in the bundle'),
83 > ('', 'compress', '', 'compress the stream'),],
83 > ('', 'compress', '', 'compress the stream'),],
84 > '[OUTPUTFILE]')
84 > '[OUTPUTFILE]')
85 > def cmdbundle2(ui, repo, path=None, **opts):
85 > def cmdbundle2(ui, repo, path=None, **opts):
86 > """write a bundle2 container on standard output"""
86 > """write a bundle2 container on standard output"""
87 > bundler = bundle2.bundle20(ui)
87 > bundler = bundle2.bundle20(ui)
88 > for p in opts['param']:
88 > for p in opts['param']:
89 > p = p.split('=', 1)
89 > p = p.split('=', 1)
90 > try:
90 > try:
91 > bundler.addparam(*p)
91 > bundler.addparam(*p)
92 > except ValueError, exc:
92 > except ValueError, exc:
93 > raise util.Abort('%s' % exc)
93 > raise util.Abort('%s' % exc)
94 >
94 >
95 > if opts['compress']:
95 > if opts['compress']:
96 > bundler.setcompression(opts['compress'])
96 > bundler.setcompression(opts['compress'])
97 >
97 >
98 > if opts['reply']:
98 > if opts['reply']:
99 > capsstring = 'ping-pong\nelephants=babar,celeste\ncity%3D%21=celeste%2Cville'
99 > capsstring = 'ping-pong\nelephants=babar,celeste\ncity%3D%21=celeste%2Cville'
100 > bundler.newpart('replycaps', data=capsstring)
100 > bundler.newpart('replycaps', data=capsstring)
101 >
101 >
102 > if opts['pushrace']:
102 > if opts['pushrace']:
103 > # also serve to test the assignement of data outside of init
103 > # also serve to test the assignement of data outside of init
104 > part = bundler.newpart('check:heads')
104 > part = bundler.newpart('check:heads')
105 > part.data = '01234567890123456789'
105 > part.data = '01234567890123456789'
106 >
106 >
107 > revs = opts['rev']
107 > revs = opts['rev']
108 > if 'rev' in opts:
108 > if 'rev' in opts:
109 > revs = scmutil.revrange(repo, opts['rev'])
109 > revs = scmutil.revrange(repo, opts['rev'])
110 > if revs:
110 > if revs:
111 > # very crude version of a changegroup part creation
111 > # very crude version of a changegroup part creation
112 > bundled = repo.revs('%ld::%ld', revs, revs)
112 > bundled = repo.revs('%ld::%ld', revs, revs)
113 > headmissing = [c.node() for c in repo.set('heads(%ld)', revs)]
113 > headmissing = [c.node() for c in repo.set('heads(%ld)', revs)]
114 > headcommon = [c.node() for c in repo.set('parents(%ld) - %ld', revs, revs)]
114 > headcommon = [c.node() for c in repo.set('parents(%ld) - %ld', revs, revs)]
115 > outgoing = discovery.outgoing(repo.changelog, headcommon, headmissing)
115 > outgoing = discovery.outgoing(repo.changelog, headcommon, headmissing)
116 > cg = changegroup.getlocalchangegroup(repo, 'test:bundle2', outgoing, None)
116 > cg = changegroup.getlocalchangegroup(repo, 'test:bundle2', outgoing, None)
117 > bundler.newpart('changegroup', data=cg.getchunks(),
117 > bundler.newpart('changegroup', data=cg.getchunks(),
118 > mandatory=False)
118 > mandatory=False)
119 >
119 >
120 > if opts['parts']:
120 > if opts['parts']:
121 > bundler.newpart('test:empty', mandatory=False)
121 > bundler.newpart('test:empty', mandatory=False)
122 > # add a second one to make sure we handle multiple parts
122 > # add a second one to make sure we handle multiple parts
123 > bundler.newpart('test:empty', mandatory=False)
123 > bundler.newpart('test:empty', mandatory=False)
124 > bundler.newpart('test:song', data=ELEPHANTSSONG, mandatory=False)
124 > bundler.newpart('test:song', data=ELEPHANTSSONG, mandatory=False)
125 > bundler.newpart('test:debugreply', mandatory=False)
125 > bundler.newpart('test:debugreply', mandatory=False)
126 > mathpart = bundler.newpart('test:math')
126 > mathpart = bundler.newpart('test:math')
127 > mathpart.addparam('pi', '3.14')
127 > mathpart.addparam('pi', '3.14')
128 > mathpart.addparam('e', '2.72')
128 > mathpart.addparam('e', '2.72')
129 > mathpart.addparam('cooking', 'raw', mandatory=False)
129 > mathpart.addparam('cooking', 'raw', mandatory=False)
130 > mathpart.data = '42'
130 > mathpart.data = '42'
131 > mathpart.mandatory = False
131 > mathpart.mandatory = False
132 > # advisory known part with unknown mandatory param
132 > # advisory known part with unknown mandatory param
133 > bundler.newpart('test:song', [('randomparam','')], mandatory=False)
133 > bundler.newpart('test:song', [('randomparam','')], mandatory=False)
134 > if opts['unknown']:
134 > if opts['unknown']:
135 > bundler.newpart('test:unknown', data='some random content')
135 > bundler.newpart('test:unknown', data='some random content')
136 > if opts['unknownparams']:
136 > if opts['unknownparams']:
137 > bundler.newpart('test:song', [('randomparams', '')])
137 > bundler.newpart('test:song', [('randomparams', '')])
138 > if opts['parts']:
138 > if opts['parts']:
139 > bundler.newpart('test:ping', mandatory=False)
139 > bundler.newpart('test:ping', mandatory=False)
140 > if opts['genraise']:
140 > if opts['genraise']:
141 > def genraise():
141 > def genraise():
142 > yield 'first line\n'
142 > yield 'first line\n'
143 > raise RuntimeError('Someone set up us the bomb!')
143 > raise RuntimeError('Someone set up us the bomb!')
144 > bundler.newpart('output', data=genraise(), mandatory=False)
144 > bundler.newpart('output', data=genraise(), mandatory=False)
145 >
145 >
146 > if path is None:
146 > if path is None:
147 > file = sys.stdout
147 > file = sys.stdout
148 > else:
148 > else:
149 > file = open(path, 'wb')
149 > file = open(path, 'wb')
150 >
150 >
151 > if opts['timeout']:
151 > if opts['timeout']:
152 > bundler.newpart('test:song', data=ELEPHANTSSONG, mandatory=False)
152 > bundler.newpart('test:song', data=ELEPHANTSSONG, mandatory=False)
153 > for idx, junk in enumerate(bundler.getchunks()):
153 > for idx, junk in enumerate(bundler.getchunks()):
154 > ui.write('%d chunk\n' % idx)
154 > ui.write('%d chunk\n' % idx)
155 > if idx > 4:
155 > if idx > 4:
156 > # This throws a GeneratorExit inside the generator, which
156 > # This throws a GeneratorExit inside the generator, which
157 > # can cause problems if the exception-recovery code is
157 > # can cause problems if the exception-recovery code is
158 > # too zealous. It's important for this test that the break
158 > # too zealous. It's important for this test that the break
159 > # occur while we're in the middle of a part.
159 > # occur while we're in the middle of a part.
160 > break
160 > break
161 > ui.write('fake timeout complete.\n')
161 > ui.write('fake timeout complete.\n')
162 > return
162 > return
163 > try:
163 > try:
164 > for chunk in bundler.getchunks():
164 > for chunk in bundler.getchunks():
165 > file.write(chunk)
165 > file.write(chunk)
166 > except RuntimeError, exc:
166 > except RuntimeError, exc:
167 > raise util.Abort(exc)
167 > raise util.Abort(exc)
168 >
168 >
169 > @command('unbundle2', [], '')
169 > @command('unbundle2', [], '')
170 > def cmdunbundle2(ui, repo, replypath=None):
170 > def cmdunbundle2(ui, repo, replypath=None):
171 > """process a bundle2 stream from stdin on the current repo"""
171 > """process a bundle2 stream from stdin on the current repo"""
172 > try:
172 > try:
173 > tr = None
173 > tr = None
174 > lock = repo.lock()
174 > lock = repo.lock()
175 > tr = repo.transaction('processbundle')
175 > tr = repo.transaction('processbundle')
176 > try:
176 > try:
177 > unbundler = bundle2.getunbundler(ui, sys.stdin)
177 > unbundler = bundle2.getunbundler(ui, sys.stdin)
178 > op = bundle2.processbundle(repo, unbundler, lambda: tr)
178 > op = bundle2.processbundle(repo, unbundler, lambda: tr)
179 > tr.close()
179 > tr.close()
180 > except error.BundleValueError, exc:
180 > except error.BundleValueError, exc:
181 > raise util.Abort('missing support for %s' % exc)
181 > raise util.Abort('missing support for %s' % exc)
182 > except error.PushRaced, exc:
182 > except error.PushRaced, exc:
183 > raise util.Abort('push race: %s' % exc)
183 > raise util.Abort('push race: %s' % exc)
184 > finally:
184 > finally:
185 > if tr is not None:
185 > if tr is not None:
186 > tr.release()
186 > tr.release()
187 > lock.release()
187 > lock.release()
188 > remains = sys.stdin.read()
188 > remains = sys.stdin.read()
189 > ui.write('%i unread bytes\n' % len(remains))
189 > ui.write('%i unread bytes\n' % len(remains))
190 > if op.records['song']:
190 > if op.records['song']:
191 > totalverses = sum(r['verses'] for r in op.records['song'])
191 > totalverses = sum(r['verses'] for r in op.records['song'])
192 > ui.write('%i total verses sung\n' % totalverses)
192 > ui.write('%i total verses sung\n' % totalverses)
193 > for rec in op.records['changegroup']:
193 > for rec in op.records['changegroup']:
194 > ui.write('addchangegroup return: %i\n' % rec['return'])
194 > ui.write('addchangegroup return: %i\n' % rec['return'])
195 > if op.reply is not None and replypath is not None:
195 > if op.reply is not None and replypath is not None:
196 > file = open(replypath, 'wb')
196 > file = open(replypath, 'wb')
197 > for chunk in op.reply.getchunks():
197 > for chunk in op.reply.getchunks():
198 > file.write(chunk)
198 > file.write(chunk)
199 >
199 >
200 > @command('statbundle2', [], '')
200 > @command('statbundle2', [], '')
201 > def cmdstatbundle2(ui, repo):
201 > def cmdstatbundle2(ui, repo):
202 > """print statistic on the bundle2 container read from stdin"""
202 > """print statistic on the bundle2 container read from stdin"""
203 > unbundler = bundle2.getunbundler(ui, sys.stdin)
203 > unbundler = bundle2.getunbundler(ui, sys.stdin)
204 > try:
204 > try:
205 > params = unbundler.params
205 > params = unbundler.params
206 > except error.BundleValueError, exc:
206 > except error.BundleValueError, exc:
207 > raise util.Abort('unknown parameters: %s' % exc)
207 > raise util.Abort('unknown parameters: %s' % exc)
208 > ui.write('options count: %i\n' % len(params))
208 > ui.write('options count: %i\n' % len(params))
209 > for key in sorted(params):
209 > for key in sorted(params):
210 > ui.write('- %s\n' % key)
210 > ui.write('- %s\n' % key)
211 > value = params[key]
211 > value = params[key]
212 > if value is not None:
212 > if value is not None:
213 > ui.write(' %s\n' % value)
213 > ui.write(' %s\n' % value)
214 > count = 0
214 > count = 0
215 > for p in unbundler.iterparts():
215 > for p in unbundler.iterparts():
216 > count += 1
216 > count += 1
217 > ui.write(' :%s:\n' % p.type)
217 > ui.write(' :%s:\n' % p.type)
218 > ui.write(' mandatory: %i\n' % len(p.mandatoryparams))
218 > ui.write(' mandatory: %i\n' % len(p.mandatoryparams))
219 > ui.write(' advisory: %i\n' % len(p.advisoryparams))
219 > ui.write(' advisory: %i\n' % len(p.advisoryparams))
220 > ui.write(' payload: %i bytes\n' % len(p.read()))
220 > ui.write(' payload: %i bytes\n' % len(p.read()))
221 > ui.write('parts count: %i\n' % count)
221 > ui.write('parts count: %i\n' % count)
222 > EOF
222 > EOF
223 $ cat >> $HGRCPATH << EOF
223 $ cat >> $HGRCPATH << EOF
224 > [extensions]
224 > [extensions]
225 > bundle2=$TESTTMP/bundle2.py
225 > bundle2=$TESTTMP/bundle2.py
226 > [experimental]
226 > [experimental]
227 > bundle2-exp=True
227 > bundle2-exp=True
228 > evolution=createmarkers
228 > evolution=createmarkers
229 > [ui]
229 > [ui]
230 > ssh=python "$TESTDIR/dummyssh"
230 > ssh=python "$TESTDIR/dummyssh"
231 > logtemplate={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline}
231 > logtemplate={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline}
232 > [web]
232 > [web]
233 > push_ssl = false
233 > push_ssl = false
234 > allow_push = *
234 > allow_push = *
235 > [phases]
235 > [phases]
236 > publish=False
236 > publish=False
237 > EOF
237 > EOF
238
238
239 The extension requires a repo (currently unused)
239 The extension requires a repo (currently unused)
240
240
241 $ hg init main
241 $ hg init main
242 $ cd main
242 $ cd main
243 $ touch a
243 $ touch a
244 $ hg add a
244 $ hg add a
245 $ hg commit -m 'a'
245 $ hg commit -m 'a'
246
246
247
247
248 Empty bundle
248 Empty bundle
249 =================
249 =================
250
250
251 - no option
251 - no option
252 - no parts
252 - no parts
253
253
254 Test bundling
254 Test bundling
255
255
256 $ hg bundle2 | f --hexdump
256 $ hg bundle2 | f --hexdump
257
257
258 0000: 48 47 32 30 00 00 00 00 00 00 00 00 |HG20........|
258 0000: 48 47 32 30 00 00 00 00 00 00 00 00 |HG20........|
259
259
260 Test timeouts during bundling
260 Test timeouts during bundling
261 $ hg bundle2 --timeout --debug --config devel.bundle2.debug=yes
261 $ hg bundle2 --timeout --debug --config devel.bundle2.debug=yes
262 bundle2-output-bundle: "HG20", 1 parts total
262 bundle2-output-bundle: "HG20", 1 parts total
263 bundle2-output: start emission of HG20 stream
263 bundle2-output: start emission of HG20 stream
264 0 chunk
264 0 chunk
265 bundle2-output: bundle parameter:
265 bundle2-output: bundle parameter:
266 1 chunk
266 1 chunk
267 bundle2-output: start of parts
267 bundle2-output: start of parts
268 bundle2-output: bundle part: "test:song"
268 bundle2-output: bundle part: "test:song"
269 bundle2-output-part: "test:song" (advisory) 178 bytes payload
269 bundle2-output-part: "test:song" (advisory) 178 bytes payload
270 bundle2-output: part 0: "test:song"
270 bundle2-output: part 0: "test:song"
271 bundle2-output: header chunk size: 16
271 bundle2-output: header chunk size: 16
272 2 chunk
272 2 chunk
273 3 chunk
273 3 chunk
274 bundle2-output: payload chunk size: 178
274 bundle2-output: payload chunk size: 178
275 4 chunk
275 4 chunk
276 5 chunk
276 5 chunk
277 bundle2-generatorexit
277 bundle2-generatorexit
278 fake timeout complete.
278 fake timeout complete.
279
279
280 Test unbundling
280 Test unbundling
281
281
282 $ hg bundle2 | hg statbundle2
282 $ hg bundle2 | hg statbundle2
283 options count: 0
283 options count: 0
284 parts count: 0
284 parts count: 0
285
285
286 Test old style bundle are detected and refused
286 Test old style bundle are detected and refused
287
287
288 $ hg bundle --all ../bundle.hg
288 $ hg bundle --all ../bundle.hg
289 1 changesets found
289 1 changesets found
290 $ hg statbundle2 < ../bundle.hg
290 $ hg statbundle2 < ../bundle.hg
291 abort: unknown bundle version 10
291 abort: unknown bundle version 10
292 [255]
292 [255]
293
293
294 Test parameters
294 Test parameters
295 =================
295 =================
296
296
297 - some options
297 - some options
298 - no parts
298 - no parts
299
299
300 advisory parameters, no value
300 advisory parameters, no value
301 -------------------------------
301 -------------------------------
302
302
303 Simplest possible parameters form
303 Simplest possible parameters form
304
304
305 Test generation simple option
305 Test generation simple option
306
306
307 $ hg bundle2 --param 'caution' | f --hexdump
307 $ hg bundle2 --param 'caution' | f --hexdump
308
308
309 0000: 48 47 32 30 00 00 00 07 63 61 75 74 69 6f 6e 00 |HG20....caution.|
309 0000: 48 47 32 30 00 00 00 07 63 61 75 74 69 6f 6e 00 |HG20....caution.|
310 0010: 00 00 00 |...|
310 0010: 00 00 00 |...|
311
311
312 Test unbundling
312 Test unbundling
313
313
314 $ hg bundle2 --param 'caution' | hg statbundle2
314 $ hg bundle2 --param 'caution' | hg statbundle2
315 options count: 1
315 options count: 1
316 - caution
316 - caution
317 parts count: 0
317 parts count: 0
318
318
319 Test generation multiple option
319 Test generation multiple option
320
320
321 $ hg bundle2 --param 'caution' --param 'meal' | f --hexdump
321 $ hg bundle2 --param 'caution' --param 'meal' | f --hexdump
322
322
323 0000: 48 47 32 30 00 00 00 0c 63 61 75 74 69 6f 6e 20 |HG20....caution |
323 0000: 48 47 32 30 00 00 00 0c 63 61 75 74 69 6f 6e 20 |HG20....caution |
324 0010: 6d 65 61 6c 00 00 00 00 |meal....|
324 0010: 6d 65 61 6c 00 00 00 00 |meal....|
325
325
326 Test unbundling
326 Test unbundling
327
327
328 $ hg bundle2 --param 'caution' --param 'meal' | hg statbundle2
328 $ hg bundle2 --param 'caution' --param 'meal' | hg statbundle2
329 options count: 2
329 options count: 2
330 - caution
330 - caution
331 - meal
331 - meal
332 parts count: 0
332 parts count: 0
333
333
334 advisory parameters, with value
334 advisory parameters, with value
335 -------------------------------
335 -------------------------------
336
336
337 Test generation
337 Test generation
338
338
339 $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' | f --hexdump
339 $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' | f --hexdump
340
340
341 0000: 48 47 32 30 00 00 00 1c 63 61 75 74 69 6f 6e 20 |HG20....caution |
341 0000: 48 47 32 30 00 00 00 1c 63 61 75 74 69 6f 6e 20 |HG20....caution |
342 0010: 6d 65 61 6c 3d 76 65 67 61 6e 20 65 6c 65 70 68 |meal=vegan eleph|
342 0010: 6d 65 61 6c 3d 76 65 67 61 6e 20 65 6c 65 70 68 |meal=vegan eleph|
343 0020: 61 6e 74 73 00 00 00 00 |ants....|
343 0020: 61 6e 74 73 00 00 00 00 |ants....|
344
344
345 Test unbundling
345 Test unbundling
346
346
347 $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' | hg statbundle2
347 $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' | hg statbundle2
348 options count: 3
348 options count: 3
349 - caution
349 - caution
350 - elephants
350 - elephants
351 - meal
351 - meal
352 vegan
352 vegan
353 parts count: 0
353 parts count: 0
354
354
355 parameter with special char in value
355 parameter with special char in value
356 ---------------------------------------------------
356 ---------------------------------------------------
357
357
358 Test generation
358 Test generation
359
359
360 $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple | f --hexdump
360 $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple | f --hexdump
361
361
362 0000: 48 47 32 30 00 00 00 29 65 25 37 43 25 32 31 25 |HG20...)e%7C%21%|
362 0000: 48 47 32 30 00 00 00 29 65 25 37 43 25 32 31 25 |HG20...)e%7C%21%|
363 0010: 32 30 37 2f 3d 62 61 62 61 72 25 32 35 25 32 33 |207/=babar%25%23|
363 0010: 32 30 37 2f 3d 62 61 62 61 72 25 32 35 25 32 33 |207/=babar%25%23|
364 0020: 25 33 44 25 33 44 74 75 74 75 20 73 69 6d 70 6c |%3D%3Dtutu simpl|
364 0020: 25 33 44 25 33 44 74 75 74 75 20 73 69 6d 70 6c |%3D%3Dtutu simpl|
365 0030: 65 00 00 00 00 |e....|
365 0030: 65 00 00 00 00 |e....|
366
366
367 Test unbundling
367 Test unbundling
368
368
369 $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple | hg statbundle2
369 $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple | hg statbundle2
370 options count: 2
370 options count: 2
371 - e|! 7/
371 - e|! 7/
372 babar%#==tutu
372 babar%#==tutu
373 - simple
373 - simple
374 parts count: 0
374 parts count: 0
375
375
376 Test unknown mandatory option
376 Test unknown mandatory option
377 ---------------------------------------------------
377 ---------------------------------------------------
378
378
379 $ hg bundle2 --param 'Gravity' | hg statbundle2
379 $ hg bundle2 --param 'Gravity' | hg statbundle2
380 abort: unknown parameters: Stream Parameter - Gravity
380 abort: unknown parameters: Stream Parameter - Gravity
381 [255]
381 [255]
382
382
383 Test debug output
383 Test debug output
384 ---------------------------------------------------
384 ---------------------------------------------------
385
385
386 bundling debug
386 bundling debug
387
387
388 $ hg bundle2 --debug --param 'e|! 7/=babar%#==tutu' --param simple ../out.hg2 --config progress.debug=true --config devel.bundle2.debug=true
388 $ hg bundle2 --debug --param 'e|! 7/=babar%#==tutu' --param simple ../out.hg2 --config progress.debug=true --config devel.bundle2.debug=true
389 bundle2-output-bundle: "HG20", (2 params) 0 parts total
389 bundle2-output-bundle: "HG20", (2 params) 0 parts total
390 bundle2-output: start emission of HG20 stream
390 bundle2-output: start emission of HG20 stream
391 bundle2-output: bundle parameter: e%7C%21%207/=babar%25%23%3D%3Dtutu simple
391 bundle2-output: bundle parameter: e%7C%21%207/=babar%25%23%3D%3Dtutu simple
392 bundle2-output: start of parts
392 bundle2-output: start of parts
393 bundle2-output: end of bundle
393 bundle2-output: end of bundle
394
394
395 file content is ok
395 file content is ok
396
396
397 $ f --hexdump ../out.hg2
397 $ f --hexdump ../out.hg2
398 ../out.hg2:
398 ../out.hg2:
399 0000: 48 47 32 30 00 00 00 29 65 25 37 43 25 32 31 25 |HG20...)e%7C%21%|
399 0000: 48 47 32 30 00 00 00 29 65 25 37 43 25 32 31 25 |HG20...)e%7C%21%|
400 0010: 32 30 37 2f 3d 62 61 62 61 72 25 32 35 25 32 33 |207/=babar%25%23|
400 0010: 32 30 37 2f 3d 62 61 62 61 72 25 32 35 25 32 33 |207/=babar%25%23|
401 0020: 25 33 44 25 33 44 74 75 74 75 20 73 69 6d 70 6c |%3D%3Dtutu simpl|
401 0020: 25 33 44 25 33 44 74 75 74 75 20 73 69 6d 70 6c |%3D%3Dtutu simpl|
402 0030: 65 00 00 00 00 |e....|
402 0030: 65 00 00 00 00 |e....|
403
403
404 unbundling debug
404 unbundling debug
405
405
406 $ hg statbundle2 --debug --config progress.debug=true --config devel.bundle2.debug=true < ../out.hg2
406 $ hg statbundle2 --debug --config progress.debug=true --config devel.bundle2.debug=true < ../out.hg2
407 bundle2-input: start processing of HG20 stream
407 bundle2-input: start processing of HG20 stream
408 bundle2-input: reading bundle2 stream parameters
408 bundle2-input: reading bundle2 stream parameters
409 bundle2-input: ignoring unknown parameter 'e|! 7/'
409 bundle2-input: ignoring unknown parameter 'e|! 7/'
410 bundle2-input: ignoring unknown parameter 'simple'
410 bundle2-input: ignoring unknown parameter 'simple'
411 options count: 2
411 options count: 2
412 - e|! 7/
412 - e|! 7/
413 babar%#==tutu
413 babar%#==tutu
414 - simple
414 - simple
415 bundle2-input: start extraction of bundle2 parts
415 bundle2-input: start extraction of bundle2 parts
416 bundle2-input: part header size: 0
416 bundle2-input: part header size: 0
417 bundle2-input: end of bundle2 stream
417 bundle2-input: end of bundle2 stream
418 parts count: 0
418 parts count: 0
419
419
420
420
421 Test buggy input
421 Test buggy input
422 ---------------------------------------------------
422 ---------------------------------------------------
423
423
424 empty parameter name
424 empty parameter name
425
425
426 $ hg bundle2 --param '' --quiet
426 $ hg bundle2 --param '' --quiet
427 abort: empty parameter name
427 abort: empty parameter name
428 [255]
428 [255]
429
429
430 bad parameter name
430 bad parameter name
431
431
432 $ hg bundle2 --param 42babar
432 $ hg bundle2 --param 42babar
433 abort: non letter first character: '42babar'
433 abort: non letter first character: '42babar'
434 [255]
434 [255]
435
435
436
436
437 Test part
437 Test part
438 =================
438 =================
439
439
440 $ hg bundle2 --parts ../parts.hg2 --debug --config progress.debug=true --config devel.bundle2.debug=true
440 $ hg bundle2 --parts ../parts.hg2 --debug --config progress.debug=true --config devel.bundle2.debug=true
441 bundle2-output-bundle: "HG20", 7 parts total
441 bundle2-output-bundle: "HG20", 7 parts total
442 bundle2-output: start emission of HG20 stream
442 bundle2-output: start emission of HG20 stream
443 bundle2-output: bundle parameter:
443 bundle2-output: bundle parameter:
444 bundle2-output: start of parts
444 bundle2-output: start of parts
445 bundle2-output: bundle part: "test:empty"
445 bundle2-output: bundle part: "test:empty"
446 bundle2-output-part: "test:empty" (advisory) empty payload
446 bundle2-output-part: "test:empty" (advisory) empty payload
447 bundle2-output: part 0: "test:empty"
447 bundle2-output: part 0: "test:empty"
448 bundle2-output: header chunk size: 17
448 bundle2-output: header chunk size: 17
449 bundle2-output: closing payload chunk
449 bundle2-output: closing payload chunk
450 bundle2-output: bundle part: "test:empty"
450 bundle2-output: bundle part: "test:empty"
451 bundle2-output-part: "test:empty" (advisory) empty payload
451 bundle2-output-part: "test:empty" (advisory) empty payload
452 bundle2-output: part 1: "test:empty"
452 bundle2-output: part 1: "test:empty"
453 bundle2-output: header chunk size: 17
453 bundle2-output: header chunk size: 17
454 bundle2-output: closing payload chunk
454 bundle2-output: closing payload chunk
455 bundle2-output: bundle part: "test:song"
455 bundle2-output: bundle part: "test:song"
456 bundle2-output-part: "test:song" (advisory) 178 bytes payload
456 bundle2-output-part: "test:song" (advisory) 178 bytes payload
457 bundle2-output: part 2: "test:song"
457 bundle2-output: part 2: "test:song"
458 bundle2-output: header chunk size: 16
458 bundle2-output: header chunk size: 16
459 bundle2-output: payload chunk size: 178
459 bundle2-output: payload chunk size: 178
460 bundle2-output: closing payload chunk
460 bundle2-output: closing payload chunk
461 bundle2-output: bundle part: "test:debugreply"
461 bundle2-output: bundle part: "test:debugreply"
462 bundle2-output-part: "test:debugreply" (advisory) empty payload
462 bundle2-output-part: "test:debugreply" (advisory) empty payload
463 bundle2-output: part 3: "test:debugreply"
463 bundle2-output: part 3: "test:debugreply"
464 bundle2-output: header chunk size: 22
464 bundle2-output: header chunk size: 22
465 bundle2-output: closing payload chunk
465 bundle2-output: closing payload chunk
466 bundle2-output: bundle part: "test:math"
466 bundle2-output: bundle part: "test:math"
467 bundle2-output-part: "test:math" (advisory) (params: 2 mandatory 2 advisory) 2 bytes payload
467 bundle2-output-part: "test:math" (advisory) (params: 2 mandatory 2 advisory) 2 bytes payload
468 bundle2-output: part 4: "test:math"
468 bundle2-output: part 4: "test:math"
469 bundle2-output: header chunk size: 43
469 bundle2-output: header chunk size: 43
470 bundle2-output: payload chunk size: 2
470 bundle2-output: payload chunk size: 2
471 bundle2-output: closing payload chunk
471 bundle2-output: closing payload chunk
472 bundle2-output: bundle part: "test:song"
472 bundle2-output: bundle part: "test:song"
473 bundle2-output-part: "test:song" (advisory) (params: 1 mandatory) empty payload
473 bundle2-output-part: "test:song" (advisory) (params: 1 mandatory) empty payload
474 bundle2-output: part 5: "test:song"
474 bundle2-output: part 5: "test:song"
475 bundle2-output: header chunk size: 29
475 bundle2-output: header chunk size: 29
476 bundle2-output: closing payload chunk
476 bundle2-output: closing payload chunk
477 bundle2-output: bundle part: "test:ping"
477 bundle2-output: bundle part: "test:ping"
478 bundle2-output-part: "test:ping" (advisory) empty payload
478 bundle2-output-part: "test:ping" (advisory) empty payload
479 bundle2-output: part 6: "test:ping"
479 bundle2-output: part 6: "test:ping"
480 bundle2-output: header chunk size: 16
480 bundle2-output: header chunk size: 16
481 bundle2-output: closing payload chunk
481 bundle2-output: closing payload chunk
482 bundle2-output: end of bundle
482 bundle2-output: end of bundle
483
483
484 $ f --hexdump ../parts.hg2
484 $ f --hexdump ../parts.hg2
485 ../parts.hg2:
485 ../parts.hg2:
486 0000: 48 47 32 30 00 00 00 00 00 00 00 11 0a 74 65 73 |HG20.........tes|
486 0000: 48 47 32 30 00 00 00 00 00 00 00 11 0a 74 65 73 |HG20.........tes|
487 0010: 74 3a 65 6d 70 74 79 00 00 00 00 00 00 00 00 00 |t:empty.........|
487 0010: 74 3a 65 6d 70 74 79 00 00 00 00 00 00 00 00 00 |t:empty.........|
488 0020: 00 00 00 00 11 0a 74 65 73 74 3a 65 6d 70 74 79 |......test:empty|
488 0020: 00 00 00 00 11 0a 74 65 73 74 3a 65 6d 70 74 79 |......test:empty|
489 0030: 00 00 00 01 00 00 00 00 00 00 00 00 00 10 09 74 |...............t|
489 0030: 00 00 00 01 00 00 00 00 00 00 00 00 00 10 09 74 |...............t|
490 0040: 65 73 74 3a 73 6f 6e 67 00 00 00 02 00 00 00 00 |est:song........|
490 0040: 65 73 74 3a 73 6f 6e 67 00 00 00 02 00 00 00 00 |est:song........|
491 0050: 00 b2 50 61 74 61 6c 69 20 44 69 72 61 70 61 74 |..Patali Dirapat|
491 0050: 00 b2 50 61 74 61 6c 69 20 44 69 72 61 70 61 74 |..Patali Dirapat|
492 0060: 61 2c 20 43 72 6f 6d 64 61 20 43 72 6f 6d 64 61 |a, Cromda Cromda|
492 0060: 61 2c 20 43 72 6f 6d 64 61 20 43 72 6f 6d 64 61 |a, Cromda Cromda|
493 0070: 20 52 69 70 61 6c 6f 2c 20 50 61 74 61 20 50 61 | Ripalo, Pata Pa|
493 0070: 20 52 69 70 61 6c 6f 2c 20 50 61 74 61 20 50 61 | Ripalo, Pata Pa|
494 0080: 74 61 2c 20 4b 6f 20 4b 6f 20 4b 6f 0a 42 6f 6b |ta, Ko Ko Ko.Bok|
494 0080: 74 61 2c 20 4b 6f 20 4b 6f 20 4b 6f 0a 42 6f 6b |ta, Ko Ko Ko.Bok|
495 0090: 6f 72 6f 20 44 69 70 6f 75 6c 69 74 6f 2c 20 52 |oro Dipoulito, R|
495 0090: 6f 72 6f 20 44 69 70 6f 75 6c 69 74 6f 2c 20 52 |oro Dipoulito, R|
496 00a0: 6f 6e 64 69 20 52 6f 6e 64 69 20 50 65 70 69 6e |ondi Rondi Pepin|
496 00a0: 6f 6e 64 69 20 52 6f 6e 64 69 20 50 65 70 69 6e |ondi Rondi Pepin|
497 00b0: 6f 2c 20 50 61 74 61 20 50 61 74 61 2c 20 4b 6f |o, Pata Pata, Ko|
497 00b0: 6f 2c 20 50 61 74 61 20 50 61 74 61 2c 20 4b 6f |o, Pata Pata, Ko|
498 00c0: 20 4b 6f 20 4b 6f 0a 45 6d 61 6e 61 20 4b 61 72 | Ko Ko.Emana Kar|
498 00c0: 20 4b 6f 20 4b 6f 0a 45 6d 61 6e 61 20 4b 61 72 | Ko Ko.Emana Kar|
499 00d0: 61 73 73 6f 6c 69 2c 20 4c 6f 75 63 72 61 20 4c |assoli, Loucra L|
499 00d0: 61 73 73 6f 6c 69 2c 20 4c 6f 75 63 72 61 20 4c |assoli, Loucra L|
500 00e0: 6f 75 63 72 61 20 50 6f 6e 70 6f 6e 74 6f 2c 20 |oucra Ponponto, |
500 00e0: 6f 75 63 72 61 20 50 6f 6e 70 6f 6e 74 6f 2c 20 |oucra Ponponto, |
501 00f0: 50 61 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f |Pata Pata, Ko Ko|
501 00f0: 50 61 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f |Pata Pata, Ko Ko|
502 0100: 20 4b 6f 2e 00 00 00 00 00 00 00 16 0f 74 65 73 | Ko..........tes|
502 0100: 20 4b 6f 2e 00 00 00 00 00 00 00 16 0f 74 65 73 | Ko..........tes|
503 0110: 74 3a 64 65 62 75 67 72 65 70 6c 79 00 00 00 03 |t:debugreply....|
503 0110: 74 3a 64 65 62 75 67 72 65 70 6c 79 00 00 00 03 |t:debugreply....|
504 0120: 00 00 00 00 00 00 00 00 00 2b 09 74 65 73 74 3a |.........+.test:|
504 0120: 00 00 00 00 00 00 00 00 00 2b 09 74 65 73 74 3a |.........+.test:|
505 0130: 6d 61 74 68 00 00 00 04 02 01 02 04 01 04 07 03 |math............|
505 0130: 6d 61 74 68 00 00 00 04 02 01 02 04 01 04 07 03 |math............|
506 0140: 70 69 33 2e 31 34 65 32 2e 37 32 63 6f 6f 6b 69 |pi3.14e2.72cooki|
506 0140: 70 69 33 2e 31 34 65 32 2e 37 32 63 6f 6f 6b 69 |pi3.14e2.72cooki|
507 0150: 6e 67 72 61 77 00 00 00 02 34 32 00 00 00 00 00 |ngraw....42.....|
507 0150: 6e 67 72 61 77 00 00 00 02 34 32 00 00 00 00 00 |ngraw....42.....|
508 0160: 00 00 1d 09 74 65 73 74 3a 73 6f 6e 67 00 00 00 |....test:song...|
508 0160: 00 00 1d 09 74 65 73 74 3a 73 6f 6e 67 00 00 00 |....test:song...|
509 0170: 05 01 00 0b 00 72 61 6e 64 6f 6d 70 61 72 61 6d |.....randomparam|
509 0170: 05 01 00 0b 00 72 61 6e 64 6f 6d 70 61 72 61 6d |.....randomparam|
510 0180: 00 00 00 00 00 00 00 10 09 74 65 73 74 3a 70 69 |.........test:pi|
510 0180: 00 00 00 00 00 00 00 10 09 74 65 73 74 3a 70 69 |.........test:pi|
511 0190: 6e 67 00 00 00 06 00 00 00 00 00 00 00 00 00 00 |ng..............|
511 0190: 6e 67 00 00 00 06 00 00 00 00 00 00 00 00 00 00 |ng..............|
512
512
513
513
514 $ hg statbundle2 < ../parts.hg2
514 $ hg statbundle2 < ../parts.hg2
515 options count: 0
515 options count: 0
516 :test:empty:
516 :test:empty:
517 mandatory: 0
517 mandatory: 0
518 advisory: 0
518 advisory: 0
519 payload: 0 bytes
519 payload: 0 bytes
520 :test:empty:
520 :test:empty:
521 mandatory: 0
521 mandatory: 0
522 advisory: 0
522 advisory: 0
523 payload: 0 bytes
523 payload: 0 bytes
524 :test:song:
524 :test:song:
525 mandatory: 0
525 mandatory: 0
526 advisory: 0
526 advisory: 0
527 payload: 178 bytes
527 payload: 178 bytes
528 :test:debugreply:
528 :test:debugreply:
529 mandatory: 0
529 mandatory: 0
530 advisory: 0
530 advisory: 0
531 payload: 0 bytes
531 payload: 0 bytes
532 :test:math:
532 :test:math:
533 mandatory: 2
533 mandatory: 2
534 advisory: 1
534 advisory: 1
535 payload: 2 bytes
535 payload: 2 bytes
536 :test:song:
536 :test:song:
537 mandatory: 1
537 mandatory: 1
538 advisory: 0
538 advisory: 0
539 payload: 0 bytes
539 payload: 0 bytes
540 :test:ping:
540 :test:ping:
541 mandatory: 0
541 mandatory: 0
542 advisory: 0
542 advisory: 0
543 payload: 0 bytes
543 payload: 0 bytes
544 parts count: 7
544 parts count: 7
545
545
546 $ hg statbundle2 --debug --config progress.debug=true --config devel.bundle2.debug=true < ../parts.hg2
546 $ hg statbundle2 --debug --config progress.debug=true --config devel.bundle2.debug=true < ../parts.hg2
547 bundle2-input: start processing of HG20 stream
547 bundle2-input: start processing of HG20 stream
548 bundle2-input: reading bundle2 stream parameters
548 bundle2-input: reading bundle2 stream parameters
549 options count: 0
549 options count: 0
550 bundle2-input: start extraction of bundle2 parts
550 bundle2-input: start extraction of bundle2 parts
551 bundle2-input: part header size: 17
551 bundle2-input: part header size: 17
552 bundle2-input: part type: "test:empty"
552 bundle2-input: part type: "test:empty"
553 bundle2-input: part id: "0"
553 bundle2-input: part id: "0"
554 bundle2-input: part parameters: 0
554 bundle2-input: part parameters: 0
555 :test:empty:
555 :test:empty:
556 mandatory: 0
556 mandatory: 0
557 advisory: 0
557 advisory: 0
558 bundle2-input: payload chunk size: 0
558 bundle2-input: payload chunk size: 0
559 payload: 0 bytes
559 payload: 0 bytes
560 bundle2-input: part header size: 17
560 bundle2-input: part header size: 17
561 bundle2-input: part type: "test:empty"
561 bundle2-input: part type: "test:empty"
562 bundle2-input: part id: "1"
562 bundle2-input: part id: "1"
563 bundle2-input: part parameters: 0
563 bundle2-input: part parameters: 0
564 :test:empty:
564 :test:empty:
565 mandatory: 0
565 mandatory: 0
566 advisory: 0
566 advisory: 0
567 bundle2-input: payload chunk size: 0
567 bundle2-input: payload chunk size: 0
568 payload: 0 bytes
568 payload: 0 bytes
569 bundle2-input: part header size: 16
569 bundle2-input: part header size: 16
570 bundle2-input: part type: "test:song"
570 bundle2-input: part type: "test:song"
571 bundle2-input: part id: "2"
571 bundle2-input: part id: "2"
572 bundle2-input: part parameters: 0
572 bundle2-input: part parameters: 0
573 :test:song:
573 :test:song:
574 mandatory: 0
574 mandatory: 0
575 advisory: 0
575 advisory: 0
576 bundle2-input: payload chunk size: 178
576 bundle2-input: payload chunk size: 178
577 bundle2-input: payload chunk size: 0
577 bundle2-input: payload chunk size: 0
578 bundle2-input-part: total payload size 178
578 bundle2-input-part: total payload size 178
579 payload: 178 bytes
579 payload: 178 bytes
580 bundle2-input: part header size: 22
580 bundle2-input: part header size: 22
581 bundle2-input: part type: "test:debugreply"
581 bundle2-input: part type: "test:debugreply"
582 bundle2-input: part id: "3"
582 bundle2-input: part id: "3"
583 bundle2-input: part parameters: 0
583 bundle2-input: part parameters: 0
584 :test:debugreply:
584 :test:debugreply:
585 mandatory: 0
585 mandatory: 0
586 advisory: 0
586 advisory: 0
587 bundle2-input: payload chunk size: 0
587 bundle2-input: payload chunk size: 0
588 payload: 0 bytes
588 payload: 0 bytes
589 bundle2-input: part header size: 43
589 bundle2-input: part header size: 43
590 bundle2-input: part type: "test:math"
590 bundle2-input: part type: "test:math"
591 bundle2-input: part id: "4"
591 bundle2-input: part id: "4"
592 bundle2-input: part parameters: 3
592 bundle2-input: part parameters: 3
593 :test:math:
593 :test:math:
594 mandatory: 2
594 mandatory: 2
595 advisory: 1
595 advisory: 1
596 bundle2-input: payload chunk size: 2
596 bundle2-input: payload chunk size: 2
597 bundle2-input: payload chunk size: 0
597 bundle2-input: payload chunk size: 0
598 bundle2-input-part: total payload size 2
598 bundle2-input-part: total payload size 2
599 payload: 2 bytes
599 payload: 2 bytes
600 bundle2-input: part header size: 29
600 bundle2-input: part header size: 29
601 bundle2-input: part type: "test:song"
601 bundle2-input: part type: "test:song"
602 bundle2-input: part id: "5"
602 bundle2-input: part id: "5"
603 bundle2-input: part parameters: 1
603 bundle2-input: part parameters: 1
604 :test:song:
604 :test:song:
605 mandatory: 1
605 mandatory: 1
606 advisory: 0
606 advisory: 0
607 bundle2-input: payload chunk size: 0
607 bundle2-input: payload chunk size: 0
608 payload: 0 bytes
608 payload: 0 bytes
609 bundle2-input: part header size: 16
609 bundle2-input: part header size: 16
610 bundle2-input: part type: "test:ping"
610 bundle2-input: part type: "test:ping"
611 bundle2-input: part id: "6"
611 bundle2-input: part id: "6"
612 bundle2-input: part parameters: 0
612 bundle2-input: part parameters: 0
613 :test:ping:
613 :test:ping:
614 mandatory: 0
614 mandatory: 0
615 advisory: 0
615 advisory: 0
616 bundle2-input: payload chunk size: 0
616 bundle2-input: payload chunk size: 0
617 payload: 0 bytes
617 payload: 0 bytes
618 bundle2-input: part header size: 0
618 bundle2-input: part header size: 0
619 bundle2-input: end of bundle2 stream
619 bundle2-input: end of bundle2 stream
620 parts count: 7
620 parts count: 7
621
621
622 Test actual unbundling of test part
622 Test actual unbundling of test part
623 =======================================
623 =======================================
624
624
625 Process the bundle
625 Process the bundle
626
626
627 $ hg unbundle2 --debug --config progress.debug=true --config devel.bundle2.debug=true < ../parts.hg2
627 $ hg unbundle2 --debug --config progress.debug=true --config devel.bundle2.debug=true < ../parts.hg2
628 bundle2-input: start processing of HG20 stream
628 bundle2-input: start processing of HG20 stream
629 bundle2-input: reading bundle2 stream parameters
629 bundle2-input: reading bundle2 stream parameters
630 bundle2-input-bundle: with-transaction
630 bundle2-input-bundle: with-transaction
631 bundle2-input: start extraction of bundle2 parts
631 bundle2-input: start extraction of bundle2 parts
632 bundle2-input: part header size: 17
632 bundle2-input: part header size: 17
633 bundle2-input: part type: "test:empty"
633 bundle2-input: part type: "test:empty"
634 bundle2-input: part id: "0"
634 bundle2-input: part id: "0"
635 bundle2-input: part parameters: 0
635 bundle2-input: part parameters: 0
636 bundle2-input: ignoring unsupported advisory part test:empty
636 bundle2-input: ignoring unsupported advisory part test:empty
637 bundle2-input-part: "test:empty" (advisory) unsupported-type
637 bundle2-input-part: "test:empty" (advisory) unsupported-type
638 bundle2-input: payload chunk size: 0
638 bundle2-input: payload chunk size: 0
639 bundle2-input: part header size: 17
639 bundle2-input: part header size: 17
640 bundle2-input: part type: "test:empty"
640 bundle2-input: part type: "test:empty"
641 bundle2-input: part id: "1"
641 bundle2-input: part id: "1"
642 bundle2-input: part parameters: 0
642 bundle2-input: part parameters: 0
643 bundle2-input: ignoring unsupported advisory part test:empty
643 bundle2-input: ignoring unsupported advisory part test:empty
644 bundle2-input-part: "test:empty" (advisory) unsupported-type
644 bundle2-input-part: "test:empty" (advisory) unsupported-type
645 bundle2-input: payload chunk size: 0
645 bundle2-input: payload chunk size: 0
646 bundle2-input: part header size: 16
646 bundle2-input: part header size: 16
647 bundle2-input: part type: "test:song"
647 bundle2-input: part type: "test:song"
648 bundle2-input: part id: "2"
648 bundle2-input: part id: "2"
649 bundle2-input: part parameters: 0
649 bundle2-input: part parameters: 0
650 bundle2-input: found a handler for part 'test:song'
650 bundle2-input: found a handler for part 'test:song'
651 bundle2-input-part: "test:song" (advisory) supported
651 bundle2-input-part: "test:song" (advisory) supported
652 The choir starts singing:
652 The choir starts singing:
653 bundle2-input: payload chunk size: 178
653 bundle2-input: payload chunk size: 178
654 bundle2-input: payload chunk size: 0
654 bundle2-input: payload chunk size: 0
655 bundle2-input-part: total payload size 178
655 bundle2-input-part: total payload size 178
656 Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
656 Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
657 Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
657 Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
658 Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.
658 Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.
659 bundle2-input: part header size: 22
659 bundle2-input: part header size: 22
660 bundle2-input: part type: "test:debugreply"
660 bundle2-input: part type: "test:debugreply"
661 bundle2-input: part id: "3"
661 bundle2-input: part id: "3"
662 bundle2-input: part parameters: 0
662 bundle2-input: part parameters: 0
663 bundle2-input: found a handler for part 'test:debugreply'
663 bundle2-input: found a handler for part 'test:debugreply'
664 bundle2-input-part: "test:debugreply" (advisory) supported
664 bundle2-input-part: "test:debugreply" (advisory) supported
665 debugreply: no reply
665 debugreply: no reply
666 bundle2-input: payload chunk size: 0
666 bundle2-input: payload chunk size: 0
667 bundle2-input: part header size: 43
667 bundle2-input: part header size: 43
668 bundle2-input: part type: "test:math"
668 bundle2-input: part type: "test:math"
669 bundle2-input: part id: "4"
669 bundle2-input: part id: "4"
670 bundle2-input: part parameters: 3
670 bundle2-input: part parameters: 3
671 bundle2-input: ignoring unsupported advisory part test:math
671 bundle2-input: ignoring unsupported advisory part test:math
672 bundle2-input-part: "test:math" (advisory) (params: 2 mandatory 2 advisory) unsupported-type
672 bundle2-input-part: "test:math" (advisory) (params: 2 mandatory 2 advisory) unsupported-type
673 bundle2-input: payload chunk size: 2
673 bundle2-input: payload chunk size: 2
674 bundle2-input: payload chunk size: 0
674 bundle2-input: payload chunk size: 0
675 bundle2-input-part: total payload size 2
675 bundle2-input-part: total payload size 2
676 bundle2-input: part header size: 29
676 bundle2-input: part header size: 29
677 bundle2-input: part type: "test:song"
677 bundle2-input: part type: "test:song"
678 bundle2-input: part id: "5"
678 bundle2-input: part id: "5"
679 bundle2-input: part parameters: 1
679 bundle2-input: part parameters: 1
680 bundle2-input: found a handler for part 'test:song'
680 bundle2-input: found a handler for part 'test:song'
681 bundle2-input: ignoring unsupported advisory part test:song - randomparam
681 bundle2-input: ignoring unsupported advisory part test:song - randomparam
682 bundle2-input-part: "test:song" (advisory) (params: 1 mandatory) unsupported-params (['randomparam'])
682 bundle2-input-part: "test:song" (advisory) (params: 1 mandatory) unsupported-params (['randomparam'])
683 bundle2-input: payload chunk size: 0
683 bundle2-input: payload chunk size: 0
684 bundle2-input: part header size: 16
684 bundle2-input: part header size: 16
685 bundle2-input: part type: "test:ping"
685 bundle2-input: part type: "test:ping"
686 bundle2-input: part id: "6"
686 bundle2-input: part id: "6"
687 bundle2-input: part parameters: 0
687 bundle2-input: part parameters: 0
688 bundle2-input: found a handler for part 'test:ping'
688 bundle2-input: found a handler for part 'test:ping'
689 bundle2-input-part: "test:ping" (advisory) supported
689 bundle2-input-part: "test:ping" (advisory) supported
690 received ping request (id 6)
690 received ping request (id 6)
691 bundle2-input: payload chunk size: 0
691 bundle2-input: payload chunk size: 0
692 bundle2-input: part header size: 0
692 bundle2-input: part header size: 0
693 bundle2-input: end of bundle2 stream
693 bundle2-input: end of bundle2 stream
694 bundle2-input-bundle: 6 parts total
694 bundle2-input-bundle: 6 parts total
695 0 unread bytes
695 0 unread bytes
696 3 total verses sung
696 3 total verses sung
697
697
698 Unbundle with an unknown mandatory part
698 Unbundle with an unknown mandatory part
699 (should abort)
699 (should abort)
700
700
701 $ hg bundle2 --parts --unknown ../unknown.hg2
701 $ hg bundle2 --parts --unknown ../unknown.hg2
702
702
703 $ hg unbundle2 < ../unknown.hg2
703 $ hg unbundle2 < ../unknown.hg2
704 The choir starts singing:
704 The choir starts singing:
705 Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
705 Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
706 Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
706 Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
707 Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.
707 Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.
708 debugreply: no reply
708 debugreply: no reply
709 0 unread bytes
709 0 unread bytes
710 abort: missing support for test:unknown
710 abort: missing support for test:unknown
711 [255]
711 [255]
712
712
713 Unbundle with an unknown mandatory part parameters
713 Unbundle with an unknown mandatory part parameters
714 (should abort)
714 (should abort)
715
715
716 $ hg bundle2 --unknownparams ../unknown.hg2
716 $ hg bundle2 --unknownparams ../unknown.hg2
717
717
718 $ hg unbundle2 < ../unknown.hg2
718 $ hg unbundle2 < ../unknown.hg2
719 0 unread bytes
719 0 unread bytes
720 abort: missing support for test:song - randomparams
720 abort: missing support for test:song - randomparams
721 [255]
721 [255]
722
722
723 unbundle with a reply
723 unbundle with a reply
724
724
725 $ hg bundle2 --parts --reply ../parts-reply.hg2
725 $ hg bundle2 --parts --reply ../parts-reply.hg2
726 $ hg unbundle2 ../reply.hg2 < ../parts-reply.hg2
726 $ hg unbundle2 ../reply.hg2 < ../parts-reply.hg2
727 0 unread bytes
727 0 unread bytes
728 3 total verses sung
728 3 total verses sung
729
729
730 The reply is a bundle
730 The reply is a bundle
731
731
732 $ f --hexdump ../reply.hg2
732 $ f --hexdump ../reply.hg2
733 ../reply.hg2:
733 ../reply.hg2:
734 0000: 48 47 32 30 00 00 00 00 00 00 00 1b 06 6f 75 74 |HG20.........out|
734 0000: 48 47 32 30 00 00 00 00 00 00 00 1b 06 6f 75 74 |HG20.........out|
735 0010: 70 75 74 00 00 00 00 00 01 0b 01 69 6e 2d 72 65 |put........in-re|
735 0010: 70 75 74 00 00 00 00 00 01 0b 01 69 6e 2d 72 65 |put........in-re|
736 0020: 70 6c 79 2d 74 6f 33 00 00 00 d9 54 68 65 20 63 |ply-to3....The c|
736 0020: 70 6c 79 2d 74 6f 33 00 00 00 d9 54 68 65 20 63 |ply-to3....The c|
737 0030: 68 6f 69 72 20 73 74 61 72 74 73 20 73 69 6e 67 |hoir starts sing|
737 0030: 68 6f 69 72 20 73 74 61 72 74 73 20 73 69 6e 67 |hoir starts sing|
738 0040: 69 6e 67 3a 0a 20 20 20 20 50 61 74 61 6c 69 20 |ing:. Patali |
738 0040: 69 6e 67 3a 0a 20 20 20 20 50 61 74 61 6c 69 20 |ing:. Patali |
739 0050: 44 69 72 61 70 61 74 61 2c 20 43 72 6f 6d 64 61 |Dirapata, Cromda|
739 0050: 44 69 72 61 70 61 74 61 2c 20 43 72 6f 6d 64 61 |Dirapata, Cromda|
740 0060: 20 43 72 6f 6d 64 61 20 52 69 70 61 6c 6f 2c 20 | Cromda Ripalo, |
740 0060: 20 43 72 6f 6d 64 61 20 52 69 70 61 6c 6f 2c 20 | Cromda Ripalo, |
741 0070: 50 61 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f |Pata Pata, Ko Ko|
741 0070: 50 61 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f |Pata Pata, Ko Ko|
742 0080: 20 4b 6f 0a 20 20 20 20 42 6f 6b 6f 72 6f 20 44 | Ko. Bokoro D|
742 0080: 20 4b 6f 0a 20 20 20 20 42 6f 6b 6f 72 6f 20 44 | Ko. Bokoro D|
743 0090: 69 70 6f 75 6c 69 74 6f 2c 20 52 6f 6e 64 69 20 |ipoulito, Rondi |
743 0090: 69 70 6f 75 6c 69 74 6f 2c 20 52 6f 6e 64 69 20 |ipoulito, Rondi |
744 00a0: 52 6f 6e 64 69 20 50 65 70 69 6e 6f 2c 20 50 61 |Rondi Pepino, Pa|
744 00a0: 52 6f 6e 64 69 20 50 65 70 69 6e 6f 2c 20 50 61 |Rondi Pepino, Pa|
745 00b0: 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f 20 4b |ta Pata, Ko Ko K|
745 00b0: 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f 20 4b |ta Pata, Ko Ko K|
746 00c0: 6f 0a 20 20 20 20 45 6d 61 6e 61 20 4b 61 72 61 |o. Emana Kara|
746 00c0: 6f 0a 20 20 20 20 45 6d 61 6e 61 20 4b 61 72 61 |o. Emana Kara|
747 00d0: 73 73 6f 6c 69 2c 20 4c 6f 75 63 72 61 20 4c 6f |ssoli, Loucra Lo|
747 00d0: 73 73 6f 6c 69 2c 20 4c 6f 75 63 72 61 20 4c 6f |ssoli, Loucra Lo|
748 00e0: 75 63 72 61 20 50 6f 6e 70 6f 6e 74 6f 2c 20 50 |ucra Ponponto, P|
748 00e0: 75 63 72 61 20 50 6f 6e 70 6f 6e 74 6f 2c 20 50 |ucra Ponponto, P|
749 00f0: 61 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f 20 |ata Pata, Ko Ko |
749 00f0: 61 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f 20 |ata Pata, Ko Ko |
750 0100: 4b 6f 2e 0a 00 00 00 00 00 00 00 1b 06 6f 75 74 |Ko...........out|
750 0100: 4b 6f 2e 0a 00 00 00 00 00 00 00 1b 06 6f 75 74 |Ko...........out|
751 0110: 70 75 74 00 00 00 01 00 01 0b 01 69 6e 2d 72 65 |put........in-re|
751 0110: 70 75 74 00 00 00 01 00 01 0b 01 69 6e 2d 72 65 |put........in-re|
752 0120: 70 6c 79 2d 74 6f 34 00 00 00 c9 64 65 62 75 67 |ply-to4....debug|
752 0120: 70 6c 79 2d 74 6f 34 00 00 00 c9 64 65 62 75 67 |ply-to4....debug|
753 0130: 72 65 70 6c 79 3a 20 63 61 70 61 62 69 6c 69 74 |reply: capabilit|
753 0130: 72 65 70 6c 79 3a 20 63 61 70 61 62 69 6c 69 74 |reply: capabilit|
754 0140: 69 65 73 3a 0a 64 65 62 75 67 72 65 70 6c 79 3a |ies:.debugreply:|
754 0140: 69 65 73 3a 0a 64 65 62 75 67 72 65 70 6c 79 3a |ies:.debugreply:|
755 0150: 20 20 20 20 20 27 63 69 74 79 3d 21 27 0a 64 65 | 'city=!'.de|
755 0150: 20 20 20 20 20 27 63 69 74 79 3d 21 27 0a 64 65 | 'city=!'.de|
756 0160: 62 75 67 72 65 70 6c 79 3a 20 20 20 20 20 20 20 |bugreply: |
756 0160: 62 75 67 72 65 70 6c 79 3a 20 20 20 20 20 20 20 |bugreply: |
757 0170: 20 20 27 63 65 6c 65 73 74 65 2c 76 69 6c 6c 65 | 'celeste,ville|
757 0170: 20 20 27 63 65 6c 65 73 74 65 2c 76 69 6c 6c 65 | 'celeste,ville|
758 0180: 27 0a 64 65 62 75 67 72 65 70 6c 79 3a 20 20 20 |'.debugreply: |
758 0180: 27 0a 64 65 62 75 67 72 65 70 6c 79 3a 20 20 20 |'.debugreply: |
759 0190: 20 20 27 65 6c 65 70 68 61 6e 74 73 27 0a 64 65 | 'elephants'.de|
759 0190: 20 20 27 65 6c 65 70 68 61 6e 74 73 27 0a 64 65 | 'elephants'.de|
760 01a0: 62 75 67 72 65 70 6c 79 3a 20 20 20 20 20 20 20 |bugreply: |
760 01a0: 62 75 67 72 65 70 6c 79 3a 20 20 20 20 20 20 20 |bugreply: |
761 01b0: 20 20 27 62 61 62 61 72 27 0a 64 65 62 75 67 72 | 'babar'.debugr|
761 01b0: 20 20 27 62 61 62 61 72 27 0a 64 65 62 75 67 72 | 'babar'.debugr|
762 01c0: 65 70 6c 79 3a 20 20 20 20 20 20 20 20 20 27 63 |eply: 'c|
762 01c0: 65 70 6c 79 3a 20 20 20 20 20 20 20 20 20 27 63 |eply: 'c|
763 01d0: 65 6c 65 73 74 65 27 0a 64 65 62 75 67 72 65 70 |eleste'.debugrep|
763 01d0: 65 6c 65 73 74 65 27 0a 64 65 62 75 67 72 65 70 |eleste'.debugrep|
764 01e0: 6c 79 3a 20 20 20 20 20 27 70 69 6e 67 2d 70 6f |ly: 'ping-po|
764 01e0: 6c 79 3a 20 20 20 20 20 27 70 69 6e 67 2d 70 6f |ly: 'ping-po|
765 01f0: 6e 67 27 0a 00 00 00 00 00 00 00 1e 09 74 65 73 |ng'..........tes|
765 01f0: 6e 67 27 0a 00 00 00 00 00 00 00 1e 09 74 65 73 |ng'..........tes|
766 0200: 74 3a 70 6f 6e 67 00 00 00 02 01 00 0b 01 69 6e |t:pong........in|
766 0200: 74 3a 70 6f 6e 67 00 00 00 02 01 00 0b 01 69 6e |t:pong........in|
767 0210: 2d 72 65 70 6c 79 2d 74 6f 37 00 00 00 00 00 00 |-reply-to7......|
767 0210: 2d 72 65 70 6c 79 2d 74 6f 37 00 00 00 00 00 00 |-reply-to7......|
768 0220: 00 1b 06 6f 75 74 70 75 74 00 00 00 03 00 01 0b |...output.......|
768 0220: 00 1b 06 6f 75 74 70 75 74 00 00 00 03 00 01 0b |...output.......|
769 0230: 01 69 6e 2d 72 65 70 6c 79 2d 74 6f 37 00 00 00 |.in-reply-to7...|
769 0230: 01 69 6e 2d 72 65 70 6c 79 2d 74 6f 37 00 00 00 |.in-reply-to7...|
770 0240: 3d 72 65 63 65 69 76 65 64 20 70 69 6e 67 20 72 |=received ping r|
770 0240: 3d 72 65 63 65 69 76 65 64 20 70 69 6e 67 20 72 |=received ping r|
771 0250: 65 71 75 65 73 74 20 28 69 64 20 37 29 0a 72 65 |equest (id 7).re|
771 0250: 65 71 75 65 73 74 20 28 69 64 20 37 29 0a 72 65 |equest (id 7).re|
772 0260: 70 6c 79 69 6e 67 20 74 6f 20 70 69 6e 67 20 72 |plying to ping r|
772 0260: 70 6c 79 69 6e 67 20 74 6f 20 70 69 6e 67 20 72 |plying to ping r|
773 0270: 65 71 75 65 73 74 20 28 69 64 20 37 29 0a 00 00 |equest (id 7)...|
773 0270: 65 71 75 65 73 74 20 28 69 64 20 37 29 0a 00 00 |equest (id 7)...|
774 0280: 00 00 00 00 00 00 |......|
774 0280: 00 00 00 00 00 00 |......|
775
775
776 The reply is valid
776 The reply is valid
777
777
778 $ hg statbundle2 < ../reply.hg2
778 $ hg statbundle2 < ../reply.hg2
779 options count: 0
779 options count: 0
780 :output:
780 :output:
781 mandatory: 0
781 mandatory: 0
782 advisory: 1
782 advisory: 1
783 payload: 217 bytes
783 payload: 217 bytes
784 :output:
784 :output:
785 mandatory: 0
785 mandatory: 0
786 advisory: 1
786 advisory: 1
787 payload: 201 bytes
787 payload: 201 bytes
788 :test:pong:
788 :test:pong:
789 mandatory: 1
789 mandatory: 1
790 advisory: 0
790 advisory: 0
791 payload: 0 bytes
791 payload: 0 bytes
792 :output:
792 :output:
793 mandatory: 0
793 mandatory: 0
794 advisory: 1
794 advisory: 1
795 payload: 61 bytes
795 payload: 61 bytes
796 parts count: 4
796 parts count: 4
797
797
798 Unbundle the reply to get the output:
798 Unbundle the reply to get the output:
799
799
800 $ hg unbundle2 < ../reply.hg2
800 $ hg unbundle2 < ../reply.hg2
801 remote: The choir starts singing:
801 remote: The choir starts singing:
802 remote: Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
802 remote: Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
803 remote: Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
803 remote: Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
804 remote: Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.
804 remote: Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.
805 remote: debugreply: capabilities:
805 remote: debugreply: capabilities:
806 remote: debugreply: 'city=!'
806 remote: debugreply: 'city=!'
807 remote: debugreply: 'celeste,ville'
807 remote: debugreply: 'celeste,ville'
808 remote: debugreply: 'elephants'
808 remote: debugreply: 'elephants'
809 remote: debugreply: 'babar'
809 remote: debugreply: 'babar'
810 remote: debugreply: 'celeste'
810 remote: debugreply: 'celeste'
811 remote: debugreply: 'ping-pong'
811 remote: debugreply: 'ping-pong'
812 remote: received ping request (id 7)
812 remote: received ping request (id 7)
813 remote: replying to ping request (id 7)
813 remote: replying to ping request (id 7)
814 0 unread bytes
814 0 unread bytes
815
815
816 Test push race detection
816 Test push race detection
817
817
818 $ hg bundle2 --pushrace ../part-race.hg2
818 $ hg bundle2 --pushrace ../part-race.hg2
819
819
820 $ hg unbundle2 < ../part-race.hg2
820 $ hg unbundle2 < ../part-race.hg2
821 0 unread bytes
821 0 unread bytes
822 abort: push race: repository changed while pushing - please try again
822 abort: push race: repository changed while pushing - please try again
823 [255]
823 [255]
824
824
825 Support for changegroup
825 Support for changegroup
826 ===================================
826 ===================================
827
827
828 $ hg unbundle $TESTDIR/bundles/rebase.hg
828 $ hg unbundle $TESTDIR/bundles/rebase.hg
829 adding changesets
829 adding changesets
830 adding manifests
830 adding manifests
831 adding file changes
831 adding file changes
832 added 8 changesets with 7 changes to 7 files (+3 heads)
832 added 8 changesets with 7 changes to 7 files (+3 heads)
833 (run 'hg heads' to see heads, 'hg merge' to merge)
833 (run 'hg heads' to see heads, 'hg merge' to merge)
834
834
835 $ hg log -G
835 $ hg log -G
836 o 8:02de42196ebe draft Nicolas Dumazet <nicdumz.commits@gmail.com> H
836 o 8:02de42196ebe draft Nicolas Dumazet <nicdumz.commits@gmail.com> H
837 |
837 |
838 | o 7:eea13746799a draft Nicolas Dumazet <nicdumz.commits@gmail.com> G
838 | o 7:eea13746799a draft Nicolas Dumazet <nicdumz.commits@gmail.com> G
839 |/|
839 |/|
840 o | 6:24b6387c8c8c draft Nicolas Dumazet <nicdumz.commits@gmail.com> F
840 o | 6:24b6387c8c8c draft Nicolas Dumazet <nicdumz.commits@gmail.com> F
841 | |
841 | |
842 | o 5:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com> E
842 | o 5:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com> E
843 |/
843 |/
844 | o 4:32af7686d403 draft Nicolas Dumazet <nicdumz.commits@gmail.com> D
844 | o 4:32af7686d403 draft Nicolas Dumazet <nicdumz.commits@gmail.com> D
845 | |
845 | |
846 | o 3:5fddd98957c8 draft Nicolas Dumazet <nicdumz.commits@gmail.com> C
846 | o 3:5fddd98957c8 draft Nicolas Dumazet <nicdumz.commits@gmail.com> C
847 | |
847 | |
848 | o 2:42ccdea3bb16 draft Nicolas Dumazet <nicdumz.commits@gmail.com> B
848 | o 2:42ccdea3bb16 draft Nicolas Dumazet <nicdumz.commits@gmail.com> B
849 |/
849 |/
850 o 1:cd010b8cd998 draft Nicolas Dumazet <nicdumz.commits@gmail.com> A
850 o 1:cd010b8cd998 draft Nicolas Dumazet <nicdumz.commits@gmail.com> A
851
851
852 @ 0:3903775176ed draft test a
852 @ 0:3903775176ed draft test a
853
853
854
854
855 $ hg bundle2 --debug --config progress.debug=true --config devel.bundle2.debug=true --rev '8+7+5+4' ../rev.hg2
855 $ hg bundle2 --debug --config progress.debug=true --config devel.bundle2.debug=true --rev '8+7+5+4' ../rev.hg2
856 4 changesets found
856 4 changesets found
857 list of changesets:
857 list of changesets:
858 32af7686d403cf45b5d95f2d70cebea587ac806a
858 32af7686d403cf45b5d95f2d70cebea587ac806a
859 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
859 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
860 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
860 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
861 02de42196ebee42ef284b6780a87cdc96e8eaab6
861 02de42196ebee42ef284b6780a87cdc96e8eaab6
862 bundle2-output-bundle: "HG20", 1 parts total
862 bundle2-output-bundle: "HG20", 1 parts total
863 bundle2-output: start emission of HG20 stream
863 bundle2-output: start emission of HG20 stream
864 bundle2-output: bundle parameter:
864 bundle2-output: bundle parameter:
865 bundle2-output: start of parts
865 bundle2-output: start of parts
866 bundle2-output: bundle part: "changegroup"
866 bundle2-output: bundle part: "changegroup"
867 bundle2-output-part: "changegroup" (advisory) streamed payload
867 bundle2-output-part: "changegroup" (advisory) streamed payload
868 bundle2-output: part 0: "changegroup"
868 bundle2-output: part 0: "changegroup"
869 bundle2-output: header chunk size: 18
869 bundle2-output: header chunk size: 18
870 bundling: 1/4 changesets (25.00%)
870 bundling: 1/4 changesets (25.00%)
871 bundling: 2/4 changesets (50.00%)
871 bundling: 2/4 changesets (50.00%)
872 bundling: 3/4 changesets (75.00%)
872 bundling: 3/4 changesets (75.00%)
873 bundling: 4/4 changesets (100.00%)
873 bundling: 4/4 changesets (100.00%)
874 bundling: 1/4 manifests (25.00%)
874 bundling: 1/4 manifests (25.00%)
875 bundling: 2/4 manifests (50.00%)
875 bundling: 2/4 manifests (50.00%)
876 bundling: 3/4 manifests (75.00%)
876 bundling: 3/4 manifests (75.00%)
877 bundling: 4/4 manifests (100.00%)
877 bundling: 4/4 manifests (100.00%)
878 bundling: D 1/3 files (33.33%)
878 bundling: D 1/3 files (33.33%)
879 bundling: E 2/3 files (66.67%)
879 bundling: E 2/3 files (66.67%)
880 bundling: H 3/3 files (100.00%)
880 bundling: H 3/3 files (100.00%)
881 bundle2-output: payload chunk size: 1555
881 bundle2-output: payload chunk size: 1555
882 bundle2-output: closing payload chunk
882 bundle2-output: closing payload chunk
883 bundle2-output: end of bundle
883 bundle2-output: end of bundle
884
884
885 $ f --hexdump ../rev.hg2
885 $ f --hexdump ../rev.hg2
886 ../rev.hg2:
886 ../rev.hg2:
887 0000: 48 47 32 30 00 00 00 00 00 00 00 12 0b 63 68 61 |HG20.........cha|
887 0000: 48 47 32 30 00 00 00 00 00 00 00 12 0b 63 68 61 |HG20.........cha|
888 0010: 6e 67 65 67 72 6f 75 70 00 00 00 00 00 00 00 00 |ngegroup........|
888 0010: 6e 67 65 67 72 6f 75 70 00 00 00 00 00 00 00 00 |ngegroup........|
889 0020: 06 13 00 00 00 a4 32 af 76 86 d4 03 cf 45 b5 d9 |......2.v....E..|
889 0020: 06 13 00 00 00 a4 32 af 76 86 d4 03 cf 45 b5 d9 |......2.v....E..|
890 0030: 5f 2d 70 ce be a5 87 ac 80 6a 5f dd d9 89 57 c8 |_-p......j_...W.|
890 0030: 5f 2d 70 ce be a5 87 ac 80 6a 5f dd d9 89 57 c8 |_-p......j_...W.|
891 0040: a5 4a 4d 43 6d fe 1d a9 d8 7f 21 a1 b9 7b 00 00 |.JMCm.....!..{..|
891 0040: a5 4a 4d 43 6d fe 1d a9 d8 7f 21 a1 b9 7b 00 00 |.JMCm.....!..{..|
892 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
892 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
893 0060: 00 00 32 af 76 86 d4 03 cf 45 b5 d9 5f 2d 70 ce |..2.v....E.._-p.|
893 0060: 00 00 32 af 76 86 d4 03 cf 45 b5 d9 5f 2d 70 ce |..2.v....E.._-p.|
894 0070: be a5 87 ac 80 6a 00 00 00 00 00 00 00 29 00 00 |.....j.......)..|
894 0070: be a5 87 ac 80 6a 00 00 00 00 00 00 00 29 00 00 |.....j.......)..|
895 0080: 00 29 36 65 31 66 34 63 34 37 65 63 62 35 33 33 |.)6e1f4c47ecb533|
895 0080: 00 29 36 65 31 66 34 63 34 37 65 63 62 35 33 33 |.)6e1f4c47ecb533|
896 0090: 66 66 64 30 63 38 65 35 32 63 64 63 38 38 61 66 |ffd0c8e52cdc88af|
896 0090: 66 66 64 30 63 38 65 35 32 63 64 63 38 38 61 66 |ffd0c8e52cdc88af|
897 00a0: 62 36 63 64 33 39 65 32 30 63 0a 00 00 00 66 00 |b6cd39e20c....f.|
897 00a0: 62 36 63 64 33 39 65 32 30 63 0a 00 00 00 66 00 |b6cd39e20c....f.|
898 00b0: 00 00 68 00 00 00 02 44 0a 00 00 00 69 00 00 00 |..h....D....i...|
898 00b0: 00 00 68 00 00 00 02 44 0a 00 00 00 69 00 00 00 |..h....D....i...|
899 00c0: 6a 00 00 00 01 44 00 00 00 a4 95 20 ee a7 81 bc |j....D..... ....|
899 00c0: 6a 00 00 00 01 44 00 00 00 a4 95 20 ee a7 81 bc |j....D..... ....|
900 00d0: ca 16 c1 e1 5a cc 0b a1 43 35 a0 e8 e5 ba cd 01 |....Z...C5......|
900 00d0: ca 16 c1 e1 5a cc 0b a1 43 35 a0 e8 e5 ba cd 01 |....Z...C5......|
901 00e0: 0b 8c d9 98 f3 98 1a 5a 81 15 f9 4f 8d a4 ab 50 |.......Z...O...P|
901 00e0: 0b 8c d9 98 f3 98 1a 5a 81 15 f9 4f 8d a4 ab 50 |.......Z...O...P|
902 00f0: 60 89 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |`...............|
902 00f0: 60 89 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |`...............|
903 0100: 00 00 00 00 00 00 95 20 ee a7 81 bc ca 16 c1 e1 |....... ........|
903 0100: 00 00 00 00 00 00 95 20 ee a7 81 bc ca 16 c1 e1 |....... ........|
904 0110: 5a cc 0b a1 43 35 a0 e8 e5 ba 00 00 00 00 00 00 |Z...C5..........|
904 0110: 5a cc 0b a1 43 35 a0 e8 e5 ba 00 00 00 00 00 00 |Z...C5..........|
905 0120: 00 29 00 00 00 29 34 64 65 63 65 39 63 38 32 36 |.)...)4dece9c826|
905 0120: 00 29 00 00 00 29 34 64 65 63 65 39 63 38 32 36 |.)...)4dece9c826|
906 0130: 66 36 39 34 39 30 35 30 37 62 39 38 63 36 33 38 |f69490507b98c638|
906 0130: 66 36 39 34 39 30 35 30 37 62 39 38 63 36 33 38 |f69490507b98c638|
907 0140: 33 61 33 30 30 39 62 32 39 35 38 33 37 64 0a 00 |3a3009b295837d..|
907 0140: 33 61 33 30 30 39 62 32 39 35 38 33 37 64 0a 00 |3a3009b295837d..|
908 0150: 00 00 66 00 00 00 68 00 00 00 02 45 0a 00 00 00 |..f...h....E....|
908 0150: 00 00 66 00 00 00 68 00 00 00 02 45 0a 00 00 00 |..f...h....E....|
909 0160: 69 00 00 00 6a 00 00 00 01 45 00 00 00 a2 ee a1 |i...j....E......|
909 0160: 69 00 00 00 6a 00 00 00 01 45 00 00 00 a2 ee a1 |i...j....E......|
910 0170: 37 46 79 9a 9e 0b fd 88 f2 9d 3c 2e 9d c9 38 9f |7Fy.......<...8.|
910 0170: 37 46 79 9a 9e 0b fd 88 f2 9d 3c 2e 9d c9 38 9f |7Fy.......<...8.|
911 0180: 52 4f 24 b6 38 7c 8c 8c ae 37 17 88 80 f3 fa 95 |RO$.8|...7......|
911 0180: 52 4f 24 b6 38 7c 8c 8c ae 37 17 88 80 f3 fa 95 |RO$.8|...7......|
912 0190: de d3 cb 1c f7 85 95 20 ee a7 81 bc ca 16 c1 e1 |....... ........|
912 0190: de d3 cb 1c f7 85 95 20 ee a7 81 bc ca 16 c1 e1 |....... ........|
913 01a0: 5a cc 0b a1 43 35 a0 e8 e5 ba ee a1 37 46 79 9a |Z...C5......7Fy.|
913 01a0: 5a cc 0b a1 43 35 a0 e8 e5 ba ee a1 37 46 79 9a |Z...C5......7Fy.|
914 01b0: 9e 0b fd 88 f2 9d 3c 2e 9d c9 38 9f 52 4f 00 00 |......<...8.RO..|
914 01b0: 9e 0b fd 88 f2 9d 3c 2e 9d c9 38 9f 52 4f 00 00 |......<...8.RO..|
915 01c0: 00 00 00 00 00 29 00 00 00 29 33 36 35 62 39 33 |.....)...)365b93|
915 01c0: 00 00 00 00 00 29 00 00 00 29 33 36 35 62 39 33 |.....)...)365b93|
916 01d0: 64 35 37 66 64 66 34 38 31 34 65 32 62 35 39 31 |d57fdf4814e2b591|
916 01d0: 64 35 37 66 64 66 34 38 31 34 65 32 62 35 39 31 |d57fdf4814e2b591|
917 01e0: 31 64 36 62 61 63 66 66 32 62 31 32 30 31 34 34 |1d6bacff2b120144|
917 01e0: 31 64 36 62 61 63 66 66 32 62 31 32 30 31 34 34 |1d6bacff2b120144|
918 01f0: 34 31 0a 00 00 00 66 00 00 00 68 00 00 00 00 00 |41....f...h.....|
918 01f0: 34 31 0a 00 00 00 66 00 00 00 68 00 00 00 00 00 |41....f...h.....|
919 0200: 00 00 69 00 00 00 6a 00 00 00 01 47 00 00 00 a4 |..i...j....G....|
919 0200: 00 00 69 00 00 00 6a 00 00 00 01 47 00 00 00 a4 |..i...j....G....|
920 0210: 02 de 42 19 6e be e4 2e f2 84 b6 78 0a 87 cd c9 |..B.n......x....|
920 0210: 02 de 42 19 6e be e4 2e f2 84 b6 78 0a 87 cd c9 |..B.n......x....|
921 0220: 6e 8e aa b6 24 b6 38 7c 8c 8c ae 37 17 88 80 f3 |n...$.8|...7....|
921 0220: 6e 8e aa b6 24 b6 38 7c 8c 8c ae 37 17 88 80 f3 |n...$.8|...7....|
922 0230: fa 95 de d3 cb 1c f7 85 00 00 00 00 00 00 00 00 |................|
922 0230: fa 95 de d3 cb 1c f7 85 00 00 00 00 00 00 00 00 |................|
923 0240: 00 00 00 00 00 00 00 00 00 00 00 00 02 de 42 19 |..............B.|
923 0240: 00 00 00 00 00 00 00 00 00 00 00 00 02 de 42 19 |..............B.|
924 0250: 6e be e4 2e f2 84 b6 78 0a 87 cd c9 6e 8e aa b6 |n......x....n...|
924 0250: 6e be e4 2e f2 84 b6 78 0a 87 cd c9 6e 8e aa b6 |n......x....n...|
925 0260: 00 00 00 00 00 00 00 29 00 00 00 29 38 62 65 65 |.......)...)8bee|
925 0260: 00 00 00 00 00 00 00 29 00 00 00 29 38 62 65 65 |.......)...)8bee|
926 0270: 34 38 65 64 63 37 33 31 38 35 34 31 66 63 30 30 |48edc7318541fc00|
926 0270: 34 38 65 64 63 37 33 31 38 35 34 31 66 63 30 30 |48edc7318541fc00|
927 0280: 31 33 65 65 34 31 62 30 38 39 32 37 36 61 38 63 |13ee41b089276a8c|
927 0280: 31 33 65 65 34 31 62 30 38 39 32 37 36 61 38 63 |13ee41b089276a8c|
928 0290: 32 34 62 66 0a 00 00 00 66 00 00 00 66 00 00 00 |24bf....f...f...|
928 0290: 32 34 62 66 0a 00 00 00 66 00 00 00 66 00 00 00 |24bf....f...f...|
929 02a0: 02 48 0a 00 00 00 67 00 00 00 68 00 00 00 01 48 |.H....g...h....H|
929 02a0: 02 48 0a 00 00 00 67 00 00 00 68 00 00 00 01 48 |.H....g...h....H|
930 02b0: 00 00 00 00 00 00 00 8b 6e 1f 4c 47 ec b5 33 ff |........n.LG..3.|
930 02b0: 00 00 00 00 00 00 00 8b 6e 1f 4c 47 ec b5 33 ff |........n.LG..3.|
931 02c0: d0 c8 e5 2c dc 88 af b6 cd 39 e2 0c 66 a5 a0 18 |...,.....9..f...|
931 02c0: d0 c8 e5 2c dc 88 af b6 cd 39 e2 0c 66 a5 a0 18 |...,.....9..f...|
932 02d0: 17 fd f5 23 9c 27 38 02 b5 b7 61 8d 05 1c 89 e4 |...#.'8...a.....|
932 02d0: 17 fd f5 23 9c 27 38 02 b5 b7 61 8d 05 1c 89 e4 |...#.'8...a.....|
933 02e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
933 02e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
934 02f0: 00 00 00 00 32 af 76 86 d4 03 cf 45 b5 d9 5f 2d |....2.v....E.._-|
934 02f0: 00 00 00 00 32 af 76 86 d4 03 cf 45 b5 d9 5f 2d |....2.v....E.._-|
935 0300: 70 ce be a5 87 ac 80 6a 00 00 00 81 00 00 00 81 |p......j........|
935 0300: 70 ce be a5 87 ac 80 6a 00 00 00 81 00 00 00 81 |p......j........|
936 0310: 00 00 00 2b 44 00 63 33 66 31 63 61 32 39 32 34 |...+D.c3f1ca2924|
936 0310: 00 00 00 2b 44 00 63 33 66 31 63 61 32 39 32 34 |...+D.c3f1ca2924|
937 0320: 63 31 36 61 31 39 62 30 36 35 36 61 38 34 39 30 |c16a19b0656a8490|
937 0320: 63 31 36 61 31 39 62 30 36 35 36 61 38 34 39 30 |c16a19b0656a8490|
938 0330: 30 65 35 30 34 65 35 62 30 61 65 63 32 64 0a 00 |0e504e5b0aec2d..|
938 0330: 30 65 35 30 34 65 35 62 30 61 65 63 32 64 0a 00 |0e504e5b0aec2d..|
939 0340: 00 00 8b 4d ec e9 c8 26 f6 94 90 50 7b 98 c6 38 |...M...&...P{..8|
939 0340: 00 00 8b 4d ec e9 c8 26 f6 94 90 50 7b 98 c6 38 |...M...&...P{..8|
940 0350: 3a 30 09 b2 95 83 7d 00 7d 8c 9d 88 84 13 25 f5 |:0....}.}.....%.|
940 0350: 3a 30 09 b2 95 83 7d 00 7d 8c 9d 88 84 13 25 f5 |:0....}.}.....%.|
941 0360: c6 b0 63 71 b3 5b 4e 8a 2b 1a 83 00 00 00 00 00 |..cq.[N.+.......|
941 0360: c6 b0 63 71 b3 5b 4e 8a 2b 1a 83 00 00 00 00 00 |..cq.[N.+.......|
942 0370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 95 |................|
942 0370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 95 |................|
943 0380: 20 ee a7 81 bc ca 16 c1 e1 5a cc 0b a1 43 35 a0 | ........Z...C5.|
943 0380: 20 ee a7 81 bc ca 16 c1 e1 5a cc 0b a1 43 35 a0 | ........Z...C5.|
944 0390: e8 e5 ba 00 00 00 2b 00 00 00 ac 00 00 00 2b 45 |......+.......+E|
944 0390: e8 e5 ba 00 00 00 2b 00 00 00 ac 00 00 00 2b 45 |......+.......+E|
945 03a0: 00 39 63 36 66 64 30 33 35 30 61 36 63 30 64 30 |.9c6fd0350a6c0d0|
945 03a0: 00 39 63 36 66 64 30 33 35 30 61 36 63 30 64 30 |.9c6fd0350a6c0d0|
946 03b0: 63 34 39 64 34 61 39 63 35 30 31 37 63 66 30 37 |c49d4a9c5017cf07|
946 03b0: 63 34 39 64 34 61 39 63 35 30 31 37 63 66 30 37 |c49d4a9c5017cf07|
947 03c0: 30 34 33 66 35 34 65 35 38 0a 00 00 00 8b 36 5b |043f54e58.....6[|
947 03c0: 30 34 33 66 35 34 65 35 38 0a 00 00 00 8b 36 5b |043f54e58.....6[|
948 03d0: 93 d5 7f df 48 14 e2 b5 91 1d 6b ac ff 2b 12 01 |....H.....k..+..|
948 03d0: 93 d5 7f df 48 14 e2 b5 91 1d 6b ac ff 2b 12 01 |....H.....k..+..|
949 03e0: 44 41 28 a5 84 c6 5e f1 21 f8 9e b6 6a b7 d0 bc |DA(...^.!...j...|
949 03e0: 44 41 28 a5 84 c6 5e f1 21 f8 9e b6 6a b7 d0 bc |DA(...^.!...j...|
950 03f0: 15 3d 80 99 e7 ce 4d ec e9 c8 26 f6 94 90 50 7b |.=....M...&...P{|
950 03f0: 15 3d 80 99 e7 ce 4d ec e9 c8 26 f6 94 90 50 7b |.=....M...&...P{|
951 0400: 98 c6 38 3a 30 09 b2 95 83 7d ee a1 37 46 79 9a |..8:0....}..7Fy.|
951 0400: 98 c6 38 3a 30 09 b2 95 83 7d ee a1 37 46 79 9a |..8:0....}..7Fy.|
952 0410: 9e 0b fd 88 f2 9d 3c 2e 9d c9 38 9f 52 4f 00 00 |......<...8.RO..|
952 0410: 9e 0b fd 88 f2 9d 3c 2e 9d c9 38 9f 52 4f 00 00 |......<...8.RO..|
953 0420: 00 56 00 00 00 56 00 00 00 2b 46 00 32 32 62 66 |.V...V...+F.22bf|
953 0420: 00 56 00 00 00 56 00 00 00 2b 46 00 32 32 62 66 |.V...V...+F.22bf|
954 0430: 63 66 64 36 32 61 32 31 61 33 32 38 37 65 64 62 |cfd62a21a3287edb|
954 0430: 63 66 64 36 32 61 32 31 61 33 32 38 37 65 64 62 |cfd62a21a3287edb|
955 0440: 64 34 64 36 35 36 32 31 38 64 30 66 35 32 35 65 |d4d656218d0f525e|
955 0440: 64 34 64 36 35 36 32 31 38 64 30 66 35 32 35 65 |d4d656218d0f525e|
956 0450: 64 37 36 61 0a 00 00 00 97 8b ee 48 ed c7 31 85 |d76a.......H..1.|
956 0450: 64 37 36 61 0a 00 00 00 97 8b ee 48 ed c7 31 85 |d76a.......H..1.|
957 0460: 41 fc 00 13 ee 41 b0 89 27 6a 8c 24 bf 28 a5 84 |A....A..'j.$.(..|
957 0460: 41 fc 00 13 ee 41 b0 89 27 6a 8c 24 bf 28 a5 84 |A....A..'j.$.(..|
958 0470: c6 5e f1 21 f8 9e b6 6a b7 d0 bc 15 3d 80 99 e7 |.^.!...j....=...|
958 0470: c6 5e f1 21 f8 9e b6 6a b7 d0 bc 15 3d 80 99 e7 |.^.!...j....=...|
959 0480: ce 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
959 0480: ce 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
960 0490: 00 00 00 00 00 02 de 42 19 6e be e4 2e f2 84 b6 |.......B.n......|
960 0490: 00 00 00 00 00 02 de 42 19 6e be e4 2e f2 84 b6 |.......B.n......|
961 04a0: 78 0a 87 cd c9 6e 8e aa b6 00 00 00 2b 00 00 00 |x....n......+...|
961 04a0: 78 0a 87 cd c9 6e 8e aa b6 00 00 00 2b 00 00 00 |x....n......+...|
962 04b0: 56 00 00 00 00 00 00 00 81 00 00 00 81 00 00 00 |V...............|
962 04b0: 56 00 00 00 00 00 00 00 81 00 00 00 81 00 00 00 |V...............|
963 04c0: 2b 48 00 38 35 30 30 31 38 39 65 37 34 61 39 65 |+H.8500189e74a9e|
963 04c0: 2b 48 00 38 35 30 30 31 38 39 65 37 34 61 39 65 |+H.8500189e74a9e|
964 04d0: 30 34 37 35 65 38 32 32 30 39 33 62 63 37 64 62 |0475e822093bc7db|
964 04d0: 30 34 37 35 65 38 32 32 30 39 33 62 63 37 64 62 |0475e822093bc7db|
965 04e0: 30 64 36 33 31 61 65 62 30 62 34 0a 00 00 00 00 |0d631aeb0b4.....|
965 04e0: 30 64 36 33 31 61 65 62 30 62 34 0a 00 00 00 00 |0d631aeb0b4.....|
966 04f0: 00 00 00 05 44 00 00 00 62 c3 f1 ca 29 24 c1 6a |....D...b...)$.j|
966 04f0: 00 00 00 05 44 00 00 00 62 c3 f1 ca 29 24 c1 6a |....D...b...)$.j|
967 0500: 19 b0 65 6a 84 90 0e 50 4e 5b 0a ec 2d 00 00 00 |..ej...PN[..-...|
967 0500: 19 b0 65 6a 84 90 0e 50 4e 5b 0a ec 2d 00 00 00 |..ej...PN[..-...|
968 0510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
968 0510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
969 0520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
969 0520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
970 0530: 00 00 00 00 00 32 af 76 86 d4 03 cf 45 b5 d9 5f |.....2.v....E.._|
970 0530: 00 00 00 00 00 32 af 76 86 d4 03 cf 45 b5 d9 5f |.....2.v....E.._|
971 0540: 2d 70 ce be a5 87 ac 80 6a 00 00 00 00 00 00 00 |-p......j.......|
971 0540: 2d 70 ce be a5 87 ac 80 6a 00 00 00 00 00 00 00 |-p......j.......|
972 0550: 00 00 00 00 02 44 0a 00 00 00 00 00 00 00 05 45 |.....D.........E|
972 0550: 00 00 00 00 02 44 0a 00 00 00 00 00 00 00 05 45 |.....D.........E|
973 0560: 00 00 00 62 9c 6f d0 35 0a 6c 0d 0c 49 d4 a9 c5 |...b.o.5.l..I...|
973 0560: 00 00 00 62 9c 6f d0 35 0a 6c 0d 0c 49 d4 a9 c5 |...b.o.5.l..I...|
974 0570: 01 7c f0 70 43 f5 4e 58 00 00 00 00 00 00 00 00 |.|.pC.NX........|
974 0570: 01 7c f0 70 43 f5 4e 58 00 00 00 00 00 00 00 00 |.|.pC.NX........|
975 0580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
975 0580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
976 0590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
976 0590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
977 05a0: 95 20 ee a7 81 bc ca 16 c1 e1 5a cc 0b a1 43 35 |. ........Z...C5|
977 05a0: 95 20 ee a7 81 bc ca 16 c1 e1 5a cc 0b a1 43 35 |. ........Z...C5|
978 05b0: a0 e8 e5 ba 00 00 00 00 00 00 00 00 00 00 00 02 |................|
978 05b0: a0 e8 e5 ba 00 00 00 00 00 00 00 00 00 00 00 02 |................|
979 05c0: 45 0a 00 00 00 00 00 00 00 05 48 00 00 00 62 85 |E.........H...b.|
979 05c0: 45 0a 00 00 00 00 00 00 00 05 48 00 00 00 62 85 |E.........H...b.|
980 05d0: 00 18 9e 74 a9 e0 47 5e 82 20 93 bc 7d b0 d6 31 |...t..G^. ..}..1|
980 05d0: 00 18 9e 74 a9 e0 47 5e 82 20 93 bc 7d b0 d6 31 |...t..G^. ..}..1|
981 05e0: ae b0 b4 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
981 05e0: ae b0 b4 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
982 05f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
982 05f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
983 0600: 00 00 00 00 00 00 00 00 00 00 00 02 de 42 19 6e |.............B.n|
983 0600: 00 00 00 00 00 00 00 00 00 00 00 02 de 42 19 6e |.............B.n|
984 0610: be e4 2e f2 84 b6 78 0a 87 cd c9 6e 8e aa b6 00 |......x....n....|
984 0610: be e4 2e f2 84 b6 78 0a 87 cd c9 6e 8e aa b6 00 |......x....n....|
985 0620: 00 00 00 00 00 00 00 00 00 00 02 48 0a 00 00 00 |...........H....|
985 0620: 00 00 00 00 00 00 00 00 00 00 02 48 0a 00 00 00 |...........H....|
986 0630: 00 00 00 00 00 00 00 00 00 00 00 00 00 |.............|
986 0630: 00 00 00 00 00 00 00 00 00 00 00 00 00 |.............|
987
987
988 $ hg debugbundle ../rev.hg2
988 $ hg debugbundle ../rev.hg2
989 Stream params: {}
989 Stream params: {}
990 changegroup -- '{}'
990 changegroup -- '{}'
991 32af7686d403cf45b5d95f2d70cebea587ac806a
991 32af7686d403cf45b5d95f2d70cebea587ac806a
992 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
992 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
993 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
993 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
994 02de42196ebee42ef284b6780a87cdc96e8eaab6
994 02de42196ebee42ef284b6780a87cdc96e8eaab6
995 $ hg unbundle ../rev.hg2
995 $ hg unbundle ../rev.hg2
996 adding changesets
996 adding changesets
997 adding manifests
997 adding manifests
998 adding file changes
998 adding file changes
999 added 0 changesets with 0 changes to 3 files
999 added 0 changesets with 0 changes to 3 files
1000
1000
1001 with reply
1001 with reply
1002
1002
1003 $ hg bundle2 --rev '8+7+5+4' --reply ../rev-rr.hg2
1003 $ hg bundle2 --rev '8+7+5+4' --reply ../rev-rr.hg2
1004 $ hg unbundle2 ../rev-reply.hg2 < ../rev-rr.hg2
1004 $ hg unbundle2 ../rev-reply.hg2 < ../rev-rr.hg2
1005 0 unread bytes
1005 0 unread bytes
1006 addchangegroup return: 1
1006 addchangegroup return: 1
1007
1007
1008 $ f --hexdump ../rev-reply.hg2
1008 $ f --hexdump ../rev-reply.hg2
1009 ../rev-reply.hg2:
1009 ../rev-reply.hg2:
1010 0000: 48 47 32 30 00 00 00 00 00 00 00 2f 11 72 65 70 |HG20......./.rep|
1010 0000: 48 47 32 30 00 00 00 00 00 00 00 2f 11 72 65 70 |HG20......./.rep|
1011 0010: 6c 79 3a 63 68 61 6e 67 65 67 72 6f 75 70 00 00 |ly:changegroup..|
1011 0010: 6c 79 3a 63 68 61 6e 67 65 67 72 6f 75 70 00 00 |ly:changegroup..|
1012 0020: 00 00 00 02 0b 01 06 01 69 6e 2d 72 65 70 6c 79 |........in-reply|
1012 0020: 00 00 00 02 0b 01 06 01 69 6e 2d 72 65 70 6c 79 |........in-reply|
1013 0030: 2d 74 6f 31 72 65 74 75 72 6e 31 00 00 00 00 00 |-to1return1.....|
1013 0030: 2d 74 6f 31 72 65 74 75 72 6e 31 00 00 00 00 00 |-to1return1.....|
1014 0040: 00 00 1b 06 6f 75 74 70 75 74 00 00 00 01 00 01 |....output......|
1014 0040: 00 00 1b 06 6f 75 74 70 75 74 00 00 00 01 00 01 |....output......|
1015 0050: 0b 01 69 6e 2d 72 65 70 6c 79 2d 74 6f 31 00 00 |..in-reply-to1..|
1015 0050: 0b 01 69 6e 2d 72 65 70 6c 79 2d 74 6f 31 00 00 |..in-reply-to1..|
1016 0060: 00 64 61 64 64 69 6e 67 20 63 68 61 6e 67 65 73 |.dadding changes|
1016 0060: 00 64 61 64 64 69 6e 67 20 63 68 61 6e 67 65 73 |.dadding changes|
1017 0070: 65 74 73 0a 61 64 64 69 6e 67 20 6d 61 6e 69 66 |ets.adding manif|
1017 0070: 65 74 73 0a 61 64 64 69 6e 67 20 6d 61 6e 69 66 |ets.adding manif|
1018 0080: 65 73 74 73 0a 61 64 64 69 6e 67 20 66 69 6c 65 |ests.adding file|
1018 0080: 65 73 74 73 0a 61 64 64 69 6e 67 20 66 69 6c 65 |ests.adding file|
1019 0090: 20 63 68 61 6e 67 65 73 0a 61 64 64 65 64 20 30 | changes.added 0|
1019 0090: 20 63 68 61 6e 67 65 73 0a 61 64 64 65 64 20 30 | changes.added 0|
1020 00a0: 20 63 68 61 6e 67 65 73 65 74 73 20 77 69 74 68 | changesets with|
1020 00a0: 20 63 68 61 6e 67 65 73 65 74 73 20 77 69 74 68 | changesets with|
1021 00b0: 20 30 20 63 68 61 6e 67 65 73 20 74 6f 20 33 20 | 0 changes to 3 |
1021 00b0: 20 30 20 63 68 61 6e 67 65 73 20 74 6f 20 33 20 | 0 changes to 3 |
1022 00c0: 66 69 6c 65 73 0a 00 00 00 00 00 00 00 00 |files.........|
1022 00c0: 66 69 6c 65 73 0a 00 00 00 00 00 00 00 00 |files.........|
1023
1023
1024 Check handling of exception during generation.
1024 Check handling of exception during generation.
1025 ----------------------------------------------
1025 ----------------------------------------------
1026
1026
1027 $ hg bundle2 --genraise > ../genfailed.hg2
1027 $ hg bundle2 --genraise > ../genfailed.hg2
1028 abort: Someone set up us the bomb!
1028 abort: Someone set up us the bomb!
1029 [255]
1029 [255]
1030
1030
1031 Should still be a valid bundle
1031 Should still be a valid bundle
1032
1032
1033 $ f --hexdump ../genfailed.hg2
1033 $ f --hexdump ../genfailed.hg2
1034 ../genfailed.hg2:
1034 ../genfailed.hg2:
1035 0000: 48 47 32 30 00 00 00 00 00 00 00 0d 06 6f 75 74 |HG20.........out|
1035 0000: 48 47 32 30 00 00 00 00 00 00 00 0d 06 6f 75 74 |HG20.........out|
1036 0010: 70 75 74 00 00 00 00 00 00 ff ff ff ff 00 00 00 |put.............|
1036 0010: 70 75 74 00 00 00 00 00 00 ff ff ff ff 00 00 00 |put.............|
1037 0020: 48 0b 65 72 72 6f 72 3a 61 62 6f 72 74 00 00 00 |H.error:abort...|
1037 0020: 48 0b 65 72 72 6f 72 3a 61 62 6f 72 74 00 00 00 |H.error:abort...|
1038 0030: 00 01 00 07 2d 6d 65 73 73 61 67 65 75 6e 65 78 |....-messageunex|
1038 0030: 00 01 00 07 2d 6d 65 73 73 61 67 65 75 6e 65 78 |....-messageunex|
1039 0040: 70 65 63 74 65 64 20 65 72 72 6f 72 3a 20 53 6f |pected error: So|
1039 0040: 70 65 63 74 65 64 20 65 72 72 6f 72 3a 20 53 6f |pected error: So|
1040 0050: 6d 65 6f 6e 65 20 73 65 74 20 75 70 20 75 73 20 |meone set up us |
1040 0050: 6d 65 6f 6e 65 20 73 65 74 20 75 70 20 75 73 20 |meone set up us |
1041 0060: 74 68 65 20 62 6f 6d 62 21 00 00 00 00 00 00 00 |the bomb!.......|
1041 0060: 74 68 65 20 62 6f 6d 62 21 00 00 00 00 00 00 00 |the bomb!.......|
1042 0070: 00 |.|
1042 0070: 00 |.|
1043
1043
1044 And its handling on the other size raise a clean exception
1044 And its handling on the other size raise a clean exception
1045
1045
1046 $ cat ../genfailed.hg2 | hg unbundle2
1046 $ cat ../genfailed.hg2 | hg unbundle2
1047 0 unread bytes
1047 0 unread bytes
1048 abort: unexpected error: Someone set up us the bomb!
1048 abort: unexpected error: Someone set up us the bomb!
1049 [255]
1049 [255]
1050
1050
1051 Test compression
1051 Test compression
1052 ================
1052 ================
1053
1053
1054 Simple case where it just work: GZ
1054 Simple case where it just work: GZ
1055 ----------------------------------
1055 ----------------------------------
1056
1056
1057 $ hg bundle2 --compress GZ --rev '8+7+5+4' ../rev.hg2.bz
1057 $ hg bundle2 --compress GZ --rev '8+7+5+4' ../rev.hg2.bz
1058 $ f --hexdump ../rev.hg2.bz
1058 $ f --hexdump ../rev.hg2.bz
1059
1059 ../rev.hg2.bz:
1060 0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|
1060 0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|
1061 0010: 69 6f 6e 3d 47 5a 78 9c 95 94 7d 68 95 55 1c c7 |ion=GZx...}h.U..|
1061 0010: 69 6f 6e 3d 47 5a 78 9c 95 94 7d 68 95 55 1c c7 |ion=GZx...}h.U..|
1062 0020: 9f 3b 31 e8 ce fa c3 65 be a0 a4 b4 52 b9 29 e7 |.;1....e....R.).|
1062 0020: 9f 3b 31 e8 ce fa c3 65 be a0 a4 b4 52 b9 29 e7 |.;1....e....R.).|
1063 0030: f5 79 ce 89 fa 63 ed 5e 77 8b 9c c3 3f 2a 1c 68 |.y...c.^w...?*.h|
1063 0030: f5 79 ce 89 fa 63 ed 5e 77 8b 9c c3 3f 2a 1c 68 |.y...c.^w...?*.h|
1064 0040: cf 79 9b dd 6a ae b0 28 74 b8 e5 96 5b bb 86 61 |.y..j..(t...[..a|
1064 0040: cf 79 9b dd 6a ae b0 28 74 b8 e5 96 5b bb 86 61 |.y..j..(t...[..a|
1065 0050: a3 15 6e 3a 71 c8 6a e8 a5 da 95 64 28 22 ce 69 |..n:q.j....d(".i|
1065 0050: a3 15 6e 3a 71 c8 6a e8 a5 da 95 64 28 22 ce 69 |..n:q.j....d(".i|
1066 0060: cd 06 59 34 28 2b 51 2a 58 c3 17 56 2a 9a 9d 67 |..Y4(+Q*X..V*..g|
1066 0060: cd 06 59 34 28 2b 51 2a 58 c3 17 56 2a 9a 9d 67 |..Y4(+Q*X..V*..g|
1067 0070: dc c6 35 9e c4 1d f8 9e 87 f3 9c f3 3b bf 0f bf |..5.........;...|
1067 0070: dc c6 35 9e c4 1d f8 9e 87 f3 9c f3 3b bf 0f bf |..5.........;...|
1068 0080: 97 e3 38 ce f4 42 b9 d6 af ae d2 55 af ae 7b ad |..8..B.....U..{.|
1068 0080: 97 e3 38 ce f4 42 b9 d6 af ae d2 55 af ae 7b ad |..8..B.....U..{.|
1069 0090: c6 c9 8d bb 8a ec b4 07 ed 7f fd ed d3 53 be 4e |.............S.N|
1069 0090: c6 c9 8d bb 8a ec b4 07 ed 7f fd ed d3 53 be 4e |.............S.N|
1070 00a0: f4 0e af 59 52 73 ea 50 d7 96 9e ba d4 9a 1f 87 |...YRs.P........|
1070 00a0: f4 0e af 59 52 73 ea 50 d7 96 9e ba d4 9a 1f 87 |...YRs.P........|
1071 00b0: 9b 9f 1d e8 7a 6a 79 e9 cb 7f cf eb fe 7e d3 82 |....zjy......~..|
1071 00b0: 9b 9f 1d e8 7a 6a 79 e9 cb 7f cf eb fe 7e d3 82 |....zjy......~..|
1072 00c0: ce 2f 36 38 21 23 cc 36 b7 b5 38 90 ab a1 21 92 |./68!#.6..8...!.|
1072 00c0: ce 2f 36 38 21 23 cc 36 b7 b5 38 90 ab a1 21 92 |./68!#.6..8...!.|
1073 00d0: 78 5a 0a 8a b1 31 0a 48 a6 29 92 4a 32 e6 1b e1 |xZ...1.H.).J2...|
1073 00d0: 78 5a 0a 8a b1 31 0a 48 a6 29 92 4a 32 e6 1b e1 |xZ...1.H.).J2...|
1074 00e0: 4a 85 b9 46 40 46 ed 61 63 b5 d6 aa 20 1e ac 5e |J..F@F.ac... ..^|
1074 00e0: 4a 85 b9 46 40 46 ed 61 63 b5 d6 aa 20 1e ac 5e |J..F@F.ac... ..^|
1075 00f0: b0 0a ae 8a c4 03 c6 d6 f9 a3 7b eb fb 4e de 7f |..........{..N..|
1075 00f0: b0 0a ae 8a c4 03 c6 d6 f9 a3 7b eb fb 4e de 7f |..........{..N..|
1076 0100: e4 97 55 5f 15 76 96 d2 5d bf 9d 3f 38 18 29 4c |..U_.v..]..?8.)L|
1076 0100: e4 97 55 5f 15 76 96 d2 5d bf 9d 3f 38 18 29 4c |..U_.v..]..?8.)L|
1077 0110: 0f b7 5d 6e 9b b3 aa 7e c6 d5 15 5b f7 7c 52 f1 |..]n...~...[.|R.|
1077 0110: 0f b7 5d 6e 9b b3 aa 7e c6 d5 15 5b f7 7c 52 f1 |..]n...~...[.|R.|
1078 0120: 7c 73 18 63 98 6d 3e 23 51 5a 6a 2e 19 72 8d cb ||s.c.m>#QZj..r..|
1078 0120: 7c 73 18 63 98 6d 3e 23 51 5a 6a 2e 19 72 8d cb ||s.c.m>#QZj..r..|
1079 0130: 09 07 14 78 82 33 e9 62 86 7d 0c 00 17 88 53 86 |...x.3.b.}....S.|
1079 0130: 09 07 14 78 82 33 e9 62 86 7d 0c 00 17 88 53 86 |...x.3.b.}....S.|
1080 0140: 3d 75 0b 63 e2 16 c6 84 9d 76 8f 76 7a cb de fc |=u.c.....v.vz...|
1080 0140: 3d 75 0b 63 e2 16 c6 84 9d 76 8f 76 7a cb de fc |=u.c.....v.vz...|
1081 0150: a8 a3 f0 46 d3 a5 f6 c7 96 b6 9f 60 3b 57 ae 28 |...F.......`;W.(|
1081 0150: a8 a3 f0 46 d3 a5 f6 c7 96 b6 9f 60 3b 57 ae 28 |...F.......`;W.(|
1082 0160: ce b2 8d e9 f4 3e 6f 66 53 dd e5 6b ad 67 be f9 |.....>ofS..k.g..|
1082 0160: ce b2 8d e9 f4 3e 6f 66 53 dd e5 6b ad 67 be f9 |.....>ofS..k.g..|
1083 0170: 72 ee 5f 8d 61 3c 61 b6 f9 8c d8 a5 82 63 45 3d |r._.a<a......cE=|
1083 0170: 72 ee 5f 8d 61 3c 61 b6 f9 8c d8 a5 82 63 45 3d |r._.a<a......cE=|
1084 0180: a3 0c 61 90 68 24 28 87 50 b9 c2 97 c6 20 01 11 |..a.h$(.P.... ..|
1084 0180: a3 0c 61 90 68 24 28 87 50 b9 c2 97 c6 20 01 11 |..a.h$(.P.... ..|
1085 0190: 80 84 10 98 cf e8 e4 13 96 05 51 2c 38 f3 c4 ec |..........Q,8...|
1085 0190: 80 84 10 98 cf e8 e4 13 96 05 51 2c 38 f3 c4 ec |..........Q,8...|
1086 01a0: ea 43 e7 96 5e 6a c8 be 11 dd 32 78 a2 fa dd 8f |.C..^j....2x....|
1086 01a0: ea 43 e7 96 5e 6a c8 be 11 dd 32 78 a2 fa dd 8f |.C..^j....2x....|
1087 01b0: b3 61 84 61 51 0c b3 cd 27 64 42 6b c2 b4 92 1e |.a.aQ...'dBk....|
1087 01b0: b3 61 84 61 51 0c b3 cd 27 64 42 6b c2 b4 92 1e |.a.aQ...'dBk....|
1088 01c0: 86 8c 12 68 24 00 10 db 7f 50 00 c6 91 e7 fa 4c |...h$....P.....L|
1088 01c0: 86 8c 12 68 24 00 10 db 7f 50 00 c6 91 e7 fa 4c |...h$....P.....L|
1089 01d0: 22 22 cc bf 84 81 0a 92 c1 aa 2a c7 1b 49 e6 ee |""........*..I..|
1089 01d0: 22 22 cc bf 84 81 0a 92 c1 aa 2a c7 1b 49 e6 ee |""........*..I..|
1090 01e0: 6b a9 7e e0 e9 b2 91 5e 7c 73 68 e0 fc 23 3f 34 |k.~....^|sh..#?4|
1090 01e0: 6b a9 7e e0 e9 b2 91 5e 7c 73 68 e0 fc 23 3f 34 |k.~....^|sh..#?4|
1091 01f0: ed cf 0e f2 b3 d3 4c d7 ae 59 33 6f 8c 3d b8 63 |......L..Y3o.=.c|
1091 01f0: ed cf 0e f2 b3 d3 4c d7 ae 59 33 6f 8c 3d b8 63 |......L..Y3o.=.c|
1092 0200: 21 2b e8 3d e0 6f 9d 3a b7 f9 dc 24 2a b2 3e a7 |!+.=.o.:...$*.>.|
1092 0200: 21 2b e8 3d e0 6f 9d 3a b7 f9 dc 24 2a b2 3e a7 |!+.=.o.:...$*.>.|
1093 0210: 58 dc 91 d8 40 e9 23 8e 88 84 ae 0f b9 00 2e b5 |X...@.#.........|
1093 0210: 58 dc 91 d8 40 e9 23 8e 88 84 ae 0f b9 00 2e b5 |X...@.#.........|
1094 0220: 74 36 f3 40 53 40 34 15 c0 d7 12 8d e7 bb 65 f9 |t6.@S@4.......e.|
1094 0220: 74 36 f3 40 53 40 34 15 c0 d7 12 8d e7 bb 65 f9 |t6.@S@4.......e.|
1095 0230: c8 ef 03 0f ff f9 fe b6 8a 0d 6d fd ec 51 70 f7 |..........m..Qp.|
1095 0230: c8 ef 03 0f ff f9 fe b6 8a 0d 6d fd ec 51 70 f7 |..........m..Qp.|
1096 0240: a7 ad 9b 6b 9d da 74 7b 53 43 d1 43 63 fd 19 f9 |...k..t{SC.Cc...|
1096 0240: a7 ad 9b 6b 9d da 74 7b 53 43 d1 43 63 fd 19 f9 |...k..t{SC.Cc...|
1097 0250: ca 67 95 e5 ef c4 e6 6c 9e 44 e1 c5 ac 7a 82 6f |.g.....l.D...z.o|
1097 0250: ca 67 95 e5 ef c4 e6 6c 9e 44 e1 c5 ac 7a 82 6f |.g.....l.D...z.o|
1098 0260: c2 e1 d2 b5 2d 81 29 f0 5d 09 6c 6f 10 ae 88 cf |....-.).].lo....|
1098 0260: c2 e1 d2 b5 2d 81 29 f0 5d 09 6c 6f 10 ae 88 cf |....-.).].lo....|
1099 0270: 25 05 d0 93 06 78 80 60 43 2d 10 1b 47 71 2b b7 |%....x.`C-..Gq+.|
1099 0270: 25 05 d0 93 06 78 80 60 43 2d 10 1b 47 71 2b b7 |%....x.`C-..Gq+.|
1100 0280: 7f bb e9 a7 e4 7d 67 7b df 9b f7 62 cf cd d8 f4 |.....}g{...b....|
1100 0280: 7f bb e9 a7 e4 7d 67 7b df 9b f7 62 cf cd d8 f4 |.....}g{...b....|
1101 0290: 48 bc 64 51 57 43 ff ea 8b 0b ae 74 64 53 07 86 |H.dQWC.....tdS..|
1101 0290: 48 bc 64 51 57 43 ff ea 8b 0b ae 74 64 53 07 86 |H.dQWC.....tdS..|
1102 02a0: fa 66 3c 5e f7 e1 af a7 c2 90 ff a7 be 9e c9 29 |.f<^...........)|
1102 02a0: fa 66 3c 5e f7 e1 af a7 c2 90 ff a7 be 9e c9 29 |.f<^...........)|
1103 02b0: b6 cc 41 48 18 69 94 8b 7c 04 7d 8c 98 a7 95 50 |..AH.i..|.}....P|
1103 02b0: b6 cc 41 48 18 69 94 8b 7c 04 7d 8c 98 a7 95 50 |..AH.i..|.}....P|
1104 02c0: 44 d9 d0 20 c8 14 30 14 51 ad 6c 16 03 94 0f 5a |D.. ..0.Q.l....Z|
1104 02c0: 44 d9 d0 20 c8 14 30 14 51 ad 6c 16 03 94 0f 5a |D.. ..0.Q.l....Z|
1105 02d0: 46 93 7f 1c 87 8d 25 d7 9d a2 d1 92 4c f3 c2 54 |F.....%.....L..T|
1105 02d0: 46 93 7f 1c 87 8d 25 d7 9d a2 d1 92 4c f3 c2 54 |F.....%.....L..T|
1106 02e0: ba f8 70 18 ca 24 0a 29 96 43 71 f2 93 95 74 18 |..p..$.).Cq...t.|
1106 02e0: ba f8 70 18 ca 24 0a 29 96 43 71 f2 93 95 74 18 |..p..$.).Cq...t.|
1107 02f0: b5 65 c4 b8 f6 6c 5c 34 20 1e d5 0c 21 c0 b1 90 |.e...l\4 ...!...|
1107 02f0: b5 65 c4 b8 f6 6c 5c 34 20 1e d5 0c 21 c0 b1 90 |.e...l\4 ...!...|
1108 0300: 9e 12 40 b9 18 fa 5a 00 41 a2 39 d3 a9 c1 73 21 |..@...Z.A.9...s!|
1108 0300: 9e 12 40 b9 18 fa 5a 00 41 a2 39 d3 a9 c1 73 21 |..@...Z.A.9...s!|
1109 0310: 8e 5e 3c b9 b8 f8 48 6a 76 46 a7 1a b6 dd 5b 51 |.^<...HjvF....[Q|
1109 0310: 8e 5e 3c b9 b8 f8 48 6a 76 46 a7 1a b6 dd 5b 51 |.^<...HjvF....[Q|
1110 0320: 5e 19 1d 59 12 c6 32 89 02 9a c0 8f 4f b8 0a ba |^..Y..2.....O...|
1110 0320: 5e 19 1d 59 12 c6 32 89 02 9a c0 8f 4f b8 0a ba |^..Y..2.....O...|
1111 0330: 5e ec 58 37 44 a3 2f dd 33 ed c9 d3 dd c7 22 1b |^.X7D./.3.....".|
1111 0330: 5e ec 58 37 44 a3 2f dd 33 ed c9 d3 dd c7 22 1b |^.X7D./.3.....".|
1112 0340: 2f d4 94 8e 95 3f 77 a7 ae 6e f3 32 8d bb 4a 4c |/....?w..n.2..JL|
1112 0340: 2f d4 94 8e 95 3f 77 a7 ae 6e f3 32 8d bb 4a 4c |/....?w..n.2..JL|
1113 0350: b8 0a 5a 43 34 3a b3 3a d6 77 ff 5c b6 fa ad f9 |..ZC4:.:.w.\....|
1113 0350: b8 0a 5a 43 34 3a b3 3a d6 77 ff 5c b6 fa ad f9 |..ZC4:.:.w.\....|
1114 0360: db fb 6a 33 df c1 7d 99 cf ef d4 d5 6d da 77 7c |..j3..}.....m.w||
1114 0360: db fb 6a 33 df c1 7d 99 cf ef d4 d5 6d da 77 7c |..j3..}.....m.w||
1115 0370: 3b 19 fd af c5 3f f1 60 c3 17 |;....?.`..|
1115 0370: 3b 19 fd af c5 3f f1 60 c3 17 |;....?.`..|
1116 $ hg debugbundle ../rev.hg2.bz
1116 $ hg debugbundle ../rev.hg2.bz
1117 Stream params: {'Compression': 'GZ'}
1117 Stream params: {'Compression': 'GZ'}
1118 changegroup -- '{}'
1118 changegroup -- '{}'
1119 32af7686d403cf45b5d95f2d70cebea587ac806a
1119 32af7686d403cf45b5d95f2d70cebea587ac806a
1120 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
1120 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
1121 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
1121 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
1122 02de42196ebee42ef284b6780a87cdc96e8eaab6
1122 02de42196ebee42ef284b6780a87cdc96e8eaab6
1123 $ hg unbundle ../rev.hg2.bz
1123 $ hg unbundle ../rev.hg2.bz
1124 adding changesets
1124 adding changesets
1125 adding manifests
1125 adding manifests
1126 adding file changes
1126 adding file changes
1127 added 0 changesets with 0 changes to 3 files
1127 added 0 changesets with 0 changes to 3 files
1128 Simple case where it just work: BZ
1128 Simple case where it just work: BZ
1129 ----------------------------------
1129 ----------------------------------
1130
1130
1131 $ hg bundle2 --compress BZ --rev '8+7+5+4' ../rev.hg2.bz
1131 $ hg bundle2 --compress BZ --rev '8+7+5+4' ../rev.hg2.bz
1132 $ f --hexdump ../rev.hg2.bz
1132 $ f --hexdump ../rev.hg2.bz
1133
1133 ../rev.hg2.bz:
1134 0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|
1134 0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|
1135 0010: 69 6f 6e 3d 42 5a 42 5a 68 39 31 41 59 26 53 59 |ion=BZBZh91AY&SY|
1135 0010: 69 6f 6e 3d 42 5a 42 5a 68 39 31 41 59 26 53 59 |ion=BZBZh91AY&SY|
1136 0020: a3 4b 18 3d 00 00 1a 7f ff ff bf 5f f6 ef ef 7f |.K.=......._....|
1136 0020: a3 4b 18 3d 00 00 1a 7f ff ff bf 5f f6 ef ef 7f |.K.=......._....|
1137 0030: f6 3f f7 d1 d9 ff ff f7 6e ff ff 6e f7 f6 bd df |.?......n..n....|
1137 0030: f6 3f f7 d1 d9 ff ff f7 6e ff ff 6e f7 f6 bd df |.?......n..n....|
1138 0040: b5 ab ff cf 67 f6 e7 7b f7 c0 02 d7 33 82 8b 51 |....g..{....3..Q|
1138 0040: b5 ab ff cf 67 f6 e7 7b f7 c0 02 d7 33 82 8b 51 |....g..{....3..Q|
1139 0050: 04 a5 53 d5 3d 27 a0 99 18 4d 0d 34 00 d1 a1 e8 |..S.='...M.4....|
1139 0050: 04 a5 53 d5 3d 27 a0 99 18 4d 0d 34 00 d1 a1 e8 |..S.='...M.4....|
1140 0060: 80 c8 7a 87 a9 a3 43 6a 3d 46 86 26 80 34 3d 40 |..z...Cj=F.&.4=@|
1140 0060: 80 c8 7a 87 a9 a3 43 6a 3d 46 86 26 80 34 3d 40 |..z...Cj=F.&.4=@|
1141 0070: c8 c9 b5 34 f4 8f 48 0f 51 ea 34 34 fd 4d aa 19 |...4..H.Q.44.M..|
1141 0070: c8 c9 b5 34 f4 8f 48 0f 51 ea 34 34 fd 4d aa 19 |...4..H.Q.44.M..|
1142 0080: 03 40 0c 08 da 86 43 d4 f5 0f 42 1e a0 f3 54 33 |.@....C...B...T3|
1142 0080: 03 40 0c 08 da 86 43 d4 f5 0f 42 1e a0 f3 54 33 |.@....C...B...T3|
1143 0090: 54 d3 13 4d 03 40 32 00 00 32 03 26 80 0d 00 0d |T..M.@2..2.&....|
1143 0090: 54 d3 13 4d 03 40 32 00 00 32 03 26 80 0d 00 0d |T..M.@2..2.&....|
1144 00a0: 00 68 c8 c8 03 20 32 30 98 8c 80 00 00 03 4d 00 |.h... 20......M.|
1144 00a0: 00 68 c8 c8 03 20 32 30 98 8c 80 00 00 03 4d 00 |.h... 20......M.|
1145 00b0: c8 00 00 0d 00 00 22 99 a1 34 c2 64 a6 d5 34 1a |......"..4.d..4.|
1145 00b0: c8 00 00 0d 00 00 22 99 a1 34 c2 64 a6 d5 34 1a |......"..4.d..4.|
1146 00c0: 00 00 06 86 83 4d 07 a8 d1 a0 68 01 a0 00 00 00 |.....M....h.....|
1146 00c0: 00 00 06 86 83 4d 07 a8 d1 a0 68 01 a0 00 00 00 |.....M....h.....|
1147 00d0: 00 0d 06 80 00 00 00 0d 00 03 40 00 00 04 a4 a1 |..........@.....|
1147 00d0: 00 0d 06 80 00 00 00 0d 00 03 40 00 00 04 a4 a1 |..........@.....|
1148 00e0: 4d a9 89 89 b4 9a 32 0c 43 46 86 87 a9 8d 41 9a |M.....2.CF....A.|
1148 00e0: 4d a9 89 89 b4 9a 32 0c 43 46 86 87 a9 8d 41 9a |M.....2.CF....A.|
1149 00f0: 98 46 9a 0d 31 32 1a 34 0d 0c 8d a2 0c 98 4d 06 |.F..12.4......M.|
1149 00f0: 98 46 9a 0d 31 32 1a 34 0d 0c 8d a2 0c 98 4d 06 |.F..12.4......M.|
1150 0100: 8c 40 c2 60 8d 0d 0c 20 c9 89 fa a0 d0 d3 21 a1 |.@.`... ......!.|
1150 0100: 8c 40 c2 60 8d 0d 0c 20 c9 89 fa a0 d0 d3 21 a1 |.@.`... ......!.|
1151 0110: ea 34 d3 68 9e a6 d1 74 05 33 cb 66 96 93 28 64 |.4.h...t.3.f..(d|
1151 0110: ea 34 d3 68 9e a6 d1 74 05 33 cb 66 96 93 28 64 |.4.h...t.3.f..(d|
1152 0120: 40 91 22 ac 55 9b ea 40 7b 38 94 e2 f8 06 00 cb |@.".U..@{8......|
1152 0120: 40 91 22 ac 55 9b ea 40 7b 38 94 e2 f8 06 00 cb |@.".U..@{8......|
1153 0130: 28 02 00 4d ab 40 24 10 43 18 cf 64 b4 06 83 0c |(..M.@$.C..d....|
1153 0130: 28 02 00 4d ab 40 24 10 43 18 cf 64 b4 06 83 0c |(..M.@$.C..d....|
1154 0140: 34 6c b4 a3 d4 0a 0a e4 a8 5c 4e 23 c0 c9 7a 31 |4l.......\N#..z1|
1154 0140: 34 6c b4 a3 d4 0a 0a e4 a8 5c 4e 23 c0 c9 7a 31 |4l.......\N#..z1|
1155 0150: 97 87 77 7a 64 88 80 8e 60 97 20 93 0f 8e eb c4 |..wzd...`. .....|
1155 0150: 97 87 77 7a 64 88 80 8e 60 97 20 93 0f 8e eb c4 |..wzd...`. .....|
1156 0160: 62 a4 44 a3 52 20 b2 99 a9 2e e1 d7 29 4a 54 ac |b.D.R ......)JT.|
1156 0160: 62 a4 44 a3 52 20 b2 99 a9 2e e1 d7 29 4a 54 ac |b.D.R ......)JT.|
1157 0170: 44 7a bb cc 04 3d e0 aa bd 6a 33 5e 9b a2 57 36 |Dz...=...j3^..W6|
1157 0170: 44 7a bb cc 04 3d e0 aa bd 6a 33 5e 9b a2 57 36 |Dz...=...j3^..W6|
1158 0180: fa cb 45 bb 6d 3e c1 d9 d9 f5 83 69 8a d0 e0 e2 |..E.m>.....i....|
1158 0180: fa cb 45 bb 6d 3e c1 d9 d9 f5 83 69 8a d0 e0 e2 |..E.m>.....i....|
1159 0190: e7 ae 90 55 24 da 3f ab 78 c0 4c b4 56 a3 9e a4 |...U$.?.x.L.V...|
1159 0190: e7 ae 90 55 24 da 3f ab 78 c0 4c b4 56 a3 9e a4 |...U$.?.x.L.V...|
1160 01a0: af 9c 65 74 86 ec 6d dc 62 dc 33 ca c8 50 dd 9d |..et..m.b.3..P..|
1160 01a0: af 9c 65 74 86 ec 6d dc 62 dc 33 ca c8 50 dd 9d |..et..m.b.3..P..|
1161 01b0: 98 8e 9e 59 20 f3 f0 42 91 4a 09 f5 75 8d 3d a5 |...Y ..B.J..u.=.|
1161 01b0: 98 8e 9e 59 20 f3 f0 42 91 4a 09 f5 75 8d 3d a5 |...Y ..B.J..u.=.|
1162 01c0: a5 15 cb 8d 10 63 b0 c2 2e b2 81 f7 c1 76 0e 53 |.....c.......v.S|
1162 01c0: a5 15 cb 8d 10 63 b0 c2 2e b2 81 f7 c1 76 0e 53 |.....c.......v.S|
1163 01d0: 6c 0e 46 73 b5 ae 67 f9 4c 0b 45 6b a8 32 2a 2f |l.Fs..g.L.Ek.2*/|
1163 01d0: 6c 0e 46 73 b5 ae 67 f9 4c 0b 45 6b a8 32 2a 2f |l.Fs..g.L.Ek.2*/|
1164 01e0: a2 54 a4 44 05 20 a1 38 d1 a4 c6 09 a8 2b 08 99 |.T.D. .8.....+..|
1164 01e0: a2 54 a4 44 05 20 a1 38 d1 a4 c6 09 a8 2b 08 99 |.T.D. .8.....+..|
1165 01f0: a4 14 ae 8d a3 e3 aa 34 27 d8 44 ca c3 5d 21 8b |.......4'.D..]!.|
1165 01f0: a4 14 ae 8d a3 e3 aa 34 27 d8 44 ca c3 5d 21 8b |.......4'.D..]!.|
1166 0200: 1a 1e 97 29 71 2b 09 4a 4a 55 55 94 58 65 b2 bc |...)q+.JJUU.Xe..|
1166 0200: 1a 1e 97 29 71 2b 09 4a 4a 55 55 94 58 65 b2 bc |...)q+.JJUU.Xe..|
1167 0210: f3 a5 90 26 36 76 67 7a 51 98 d6 8a 4a 99 50 b5 |...&6vgzQ...J.P.|
1167 0210: f3 a5 90 26 36 76 67 7a 51 98 d6 8a 4a 99 50 b5 |...&6vgzQ...J.P.|
1168 0220: 99 8f 94 21 17 a9 8b f3 ad 4c 33 d4 2e 40 c8 0c |...!.....L3..@..|
1168 0220: 99 8f 94 21 17 a9 8b f3 ad 4c 33 d4 2e 40 c8 0c |...!.....L3..@..|
1169 0230: 3b 90 53 39 db 48 02 34 83 48 d6 b3 99 13 d2 58 |;.S9.H.4.H.....X|
1169 0230: 3b 90 53 39 db 48 02 34 83 48 d6 b3 99 13 d2 58 |;.S9.H.4.H.....X|
1170 0240: 65 8e 71 ac a9 06 95 f2 c4 8e b4 08 6b d3 0c ae |e.q.........k...|
1170 0240: 65 8e 71 ac a9 06 95 f2 c4 8e b4 08 6b d3 0c ae |e.q.........k...|
1171 0250: d9 90 56 71 43 a7 a2 62 16 3e 50 63 d3 57 3c 2d |..VqC..b.>Pc.W<-|
1171 0250: d9 90 56 71 43 a7 a2 62 16 3e 50 63 d3 57 3c 2d |..VqC..b.>Pc.W<-|
1172 0260: 9f 0f 34 05 08 d8 a6 4b 59 31 54 66 3a 45 0c 8a |..4....KY1Tf:E..|
1172 0260: 9f 0f 34 05 08 d8 a6 4b 59 31 54 66 3a 45 0c 8a |..4....KY1Tf:E..|
1173 0270: c7 90 3a f0 6a 83 1b f5 ca fb 80 2b 50 06 fb 51 |..:.j......+P..Q|
1173 0270: c7 90 3a f0 6a 83 1b f5 ca fb 80 2b 50 06 fb 51 |..:.j......+P..Q|
1174 0280: 7e a6 a4 d4 81 44 82 21 54 00 5b 1a 30 83 62 a3 |~....D.!T.[.0.b.|
1174 0280: 7e a6 a4 d4 81 44 82 21 54 00 5b 1a 30 83 62 a3 |~....D.!T.[.0.b.|
1175 0290: 18 b6 24 19 1e 45 df 4d 5c db a6 af 5b ac 90 fa |..$..E.M\...[...|
1175 0290: 18 b6 24 19 1e 45 df 4d 5c db a6 af 5b ac 90 fa |..$..E.M\...[...|
1176 02a0: 3e ed f9 ec 4c ba 36 ee d8 60 20 a7 c7 3b cb d1 |>...L.6..` ..;..|
1176 02a0: 3e ed f9 ec 4c ba 36 ee d8 60 20 a7 c7 3b cb d1 |>...L.6..` ..;..|
1177 02b0: 90 43 7d 27 16 50 5d ad f4 14 07 0b 90 5c cc 6b |.C}'.P]......\.k|
1177 02b0: 90 43 7d 27 16 50 5d ad f4 14 07 0b 90 5c cc 6b |.C}'.P]......\.k|
1178 02c0: 8d 3f a6 88 f4 34 37 a8 cf 14 63 36 19 f7 3e 28 |.?...47...c6..>(|
1178 02c0: 8d 3f a6 88 f4 34 37 a8 cf 14 63 36 19 f7 3e 28 |.?...47...c6..>(|
1179 02d0: de 99 e8 16 a4 9d 0d 40 a1 a7 24 52 14 a6 72 62 |.......@..$R..rb|
1179 02d0: de 99 e8 16 a4 9d 0d 40 a1 a7 24 52 14 a6 72 62 |.......@..$R..rb|
1180 02e0: 59 5a ca 2d e5 51 90 78 88 d9 c6 c7 21 d0 f7 46 |YZ.-.Q.x....!..F|
1180 02e0: 59 5a ca 2d e5 51 90 78 88 d9 c6 c7 21 d0 f7 46 |YZ.-.Q.x....!..F|
1181 02f0: b2 04 46 44 4e 20 9c 12 b1 03 4e 25 e0 a9 0c 58 |..FDN ....N%...X|
1181 02f0: b2 04 46 44 4e 20 9c 12 b1 03 4e 25 e0 a9 0c 58 |..FDN ....N%...X|
1182 0300: 5b 1d 3c 93 20 01 51 de a9 1c 69 23 32 46 14 b4 |[.<. .Q...i#2F..|
1182 0300: 5b 1d 3c 93 20 01 51 de a9 1c 69 23 32 46 14 b4 |[.<. .Q...i#2F..|
1183 0310: 90 db 17 98 98 50 03 90 29 aa 40 b0 13 d8 43 d2 |.....P..).@...C.|
1183 0310: 90 db 17 98 98 50 03 90 29 aa 40 b0 13 d8 43 d2 |.....P..).@...C.|
1184 0320: 5f c5 9d eb f3 f2 ad 41 e8 7a a9 ed a1 58 84 a6 |_......A.z...X..|
1184 0320: 5f c5 9d eb f3 f2 ad 41 e8 7a a9 ed a1 58 84 a6 |_......A.z...X..|
1185 0330: 42 bf d6 fc 24 82 c1 20 32 26 4a 15 a6 1d 29 7f |B...$.. 2&J...).|
1185 0330: 42 bf d6 fc 24 82 c1 20 32 26 4a 15 a6 1d 29 7f |B...$.. 2&J...).|
1186 0340: 7e f4 3d 07 bc 62 9a 5b ec 44 3d 72 1d 41 8b 5c |~.=..b.[.D=r.A.\|
1186 0340: 7e f4 3d 07 bc 62 9a 5b ec 44 3d 72 1d 41 8b 5c |~.=..b.[.D=r.A.\|
1187 0350: 80 de 0e 62 9a 2e f8 83 00 d5 07 a0 9c c6 74 98 |...b..........t.|
1187 0350: 80 de 0e 62 9a 2e f8 83 00 d5 07 a0 9c c6 74 98 |...b..........t.|
1188 0360: 11 b2 5e a9 38 02 03 ee fd 86 5c f4 86 b3 ae da |..^.8.....\.....|
1188 0360: 11 b2 5e a9 38 02 03 ee fd 86 5c f4 86 b3 ae da |..^.8.....\.....|
1189 0370: 05 94 01 c5 c6 ea 18 e6 ba 2a ba b3 04 5c 96 89 |.........*...\..|
1189 0370: 05 94 01 c5 c6 ea 18 e6 ba 2a ba b3 04 5c 96 89 |.........*...\..|
1190 0380: 72 63 5b 10 11 f6 67 34 98 cb e4 c0 4e fa e6 99 |rc[...g4....N...|
1190 0380: 72 63 5b 10 11 f6 67 34 98 cb e4 c0 4e fa e6 99 |rc[...g4....N...|
1191 0390: 19 6e 50 e8 26 8d 0c 17 e0 be ef e1 8e 02 6f 32 |.nP.&.........o2|
1191 0390: 19 6e 50 e8 26 8d 0c 17 e0 be ef e1 8e 02 6f 32 |.nP.&.........o2|
1192 03a0: 82 dc 26 f8 a1 08 f3 8a 0d f3 c4 75 00 48 73 b8 |..&........u.Hs.|
1192 03a0: 82 dc 26 f8 a1 08 f3 8a 0d f3 c4 75 00 48 73 b8 |..&........u.Hs.|
1193 03b0: be 3b 0d 7f d0 fd c7 78 96 ec e0 03 80 68 4d 8d |.;.....x.....hM.|
1193 03b0: be 3b 0d 7f d0 fd c7 78 96 ec e0 03 80 68 4d 8d |.;.....x.....hM.|
1194 03c0: 43 8c d7 68 58 f9 50 f0 18 cb 21 58 1b 60 cd 1f |C..hX.P...!X.`..|
1194 03c0: 43 8c d7 68 58 f9 50 f0 18 cb 21 58 1b 60 cd 1f |C..hX.P...!X.`..|
1195 03d0: 84 36 2e 16 1f 0a f7 4e 8f eb df 01 2d c2 79 0b |.6.....N....-.y.|
1195 03d0: 84 36 2e 16 1f 0a f7 4e 8f eb df 01 2d c2 79 0b |.6.....N....-.y.|
1196 03e0: f7 24 ea 0d e8 59 86 51 6e 1c 30 a3 ad 2f ee 8c |.$...Y.Qn.0../..|
1196 03e0: f7 24 ea 0d e8 59 86 51 6e 1c 30 a3 ad 2f ee 8c |.$...Y.Qn.0../..|
1197 03f0: 90 c8 84 d5 e8 34 c1 95 b2 c9 f6 4d 87 1c 7d 19 |.....4.....M..}.|
1197 03f0: 90 c8 84 d5 e8 34 c1 95 b2 c9 f6 4d 87 1c 7d 19 |.....4.....M..}.|
1198 0400: d6 41 58 56 7a e0 6c ba 10 c7 e8 33 39 36 96 e7 |.AXVz.l....396..|
1198 0400: d6 41 58 56 7a e0 6c ba 10 c7 e8 33 39 36 96 e7 |.AXVz.l....396..|
1199 0410: d2 f9 59 9a 08 95 48 38 e7 0b b7 0a 24 67 c4 39 |..Y...H8....$g.9|
1199 0410: d2 f9 59 9a 08 95 48 38 e7 0b b7 0a 24 67 c4 39 |..Y...H8....$g.9|
1200 0420: 8b 43 88 57 9c 01 f5 61 b5 e1 27 41 7e af 83 fe |.C.W...a..'A~...|
1200 0420: 8b 43 88 57 9c 01 f5 61 b5 e1 27 41 7e af 83 fe |.C.W...a..'A~...|
1201 0430: 2e e4 8a 70 a1 21 46 96 30 7a |...p.!F.0z|
1201 0430: 2e e4 8a 70 a1 21 46 96 30 7a |...p.!F.0z|
1202 $ hg debugbundle ../rev.hg2.bz
1202 $ hg debugbundle ../rev.hg2.bz
1203 Stream params: {'Compression': 'BZ'}
1203 Stream params: {'Compression': 'BZ'}
1204 changegroup -- '{}'
1204 changegroup -- '{}'
1205 32af7686d403cf45b5d95f2d70cebea587ac806a
1205 32af7686d403cf45b5d95f2d70cebea587ac806a
1206 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
1206 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
1207 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
1207 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
1208 02de42196ebee42ef284b6780a87cdc96e8eaab6
1208 02de42196ebee42ef284b6780a87cdc96e8eaab6
1209 $ hg unbundle ../rev.hg2.bz
1209 $ hg unbundle ../rev.hg2.bz
1210 adding changesets
1210 adding changesets
1211 adding manifests
1211 adding manifests
1212 adding file changes
1212 adding file changes
1213 added 0 changesets with 0 changes to 3 files
1213 added 0 changesets with 0 changes to 3 files
1214
1214
1215 unknown compression while unbundling
1215 unknown compression while unbundling
1216 -----------------------------
1216 -----------------------------
1217
1217
1218 $ hg bundle2 --param Compression=FooBarUnknown --rev '8+7+5+4' ../rev.hg2.bz
1218 $ hg bundle2 --param Compression=FooBarUnknown --rev '8+7+5+4' ../rev.hg2.bz
1219 $ cat ../rev.hg2.bz | hg statbundle2
1219 $ cat ../rev.hg2.bz | hg statbundle2
1220 abort: unknown parameters: Stream Parameter - Compression='FooBarUnknown'
1220 abort: unknown parameters: Stream Parameter - Compression='FooBarUnknown'
1221 [255]
1221 [255]
1222
1222
1223 $ cd ..
1223 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now