##// END OF EJS Templates
test: enforce v1 type in 'test-bundle2-format.t'...
Pierre-Yves David -
r26772:d9a0cf97 default
parent child Browse files
Show More
@@ -1,1230 +1,1230 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 error.Abort('%s' % exc)
93 > raise error.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 error.Abort(exc)
167 > raise error.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 error.Abort('missing support for %s' % exc)
181 > raise error.Abort('missing support for %s' % exc)
182 > except error.PushRaced, exc:
182 > except error.PushRaced, exc:
183 > raise error.Abort('push race: %s' % exc)
183 > raise error.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 error.Abort('unknown parameters: %s' % exc)
207 > raise error.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 --type v1 ../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 (run 'hg update' to get a working copy)
1000 (run 'hg update' to get a working copy)
1001
1001
1002 with reply
1002 with reply
1003
1003
1004 $ hg bundle2 --rev '8+7+5+4' --reply ../rev-rr.hg2
1004 $ hg bundle2 --rev '8+7+5+4' --reply ../rev-rr.hg2
1005 $ hg unbundle2 ../rev-reply.hg2 < ../rev-rr.hg2
1005 $ hg unbundle2 ../rev-reply.hg2 < ../rev-rr.hg2
1006 0 unread bytes
1006 0 unread bytes
1007 addchangegroup return: 1
1007 addchangegroup return: 1
1008
1008
1009 $ f --hexdump ../rev-reply.hg2
1009 $ f --hexdump ../rev-reply.hg2
1010 ../rev-reply.hg2:
1010 ../rev-reply.hg2:
1011 0000: 48 47 32 30 00 00 00 00 00 00 00 2f 11 72 65 70 |HG20......./.rep|
1011 0000: 48 47 32 30 00 00 00 00 00 00 00 2f 11 72 65 70 |HG20......./.rep|
1012 0010: 6c 79 3a 63 68 61 6e 67 65 67 72 6f 75 70 00 00 |ly:changegroup..|
1012 0010: 6c 79 3a 63 68 61 6e 67 65 67 72 6f 75 70 00 00 |ly:changegroup..|
1013 0020: 00 00 00 02 0b 01 06 01 69 6e 2d 72 65 70 6c 79 |........in-reply|
1013 0020: 00 00 00 02 0b 01 06 01 69 6e 2d 72 65 70 6c 79 |........in-reply|
1014 0030: 2d 74 6f 31 72 65 74 75 72 6e 31 00 00 00 00 00 |-to1return1.....|
1014 0030: 2d 74 6f 31 72 65 74 75 72 6e 31 00 00 00 00 00 |-to1return1.....|
1015 0040: 00 00 1b 06 6f 75 74 70 75 74 00 00 00 01 00 01 |....output......|
1015 0040: 00 00 1b 06 6f 75 74 70 75 74 00 00 00 01 00 01 |....output......|
1016 0050: 0b 01 69 6e 2d 72 65 70 6c 79 2d 74 6f 31 00 00 |..in-reply-to1..|
1016 0050: 0b 01 69 6e 2d 72 65 70 6c 79 2d 74 6f 31 00 00 |..in-reply-to1..|
1017 0060: 00 64 61 64 64 69 6e 67 20 63 68 61 6e 67 65 73 |.dadding changes|
1017 0060: 00 64 61 64 64 69 6e 67 20 63 68 61 6e 67 65 73 |.dadding changes|
1018 0070: 65 74 73 0a 61 64 64 69 6e 67 20 6d 61 6e 69 66 |ets.adding manif|
1018 0070: 65 74 73 0a 61 64 64 69 6e 67 20 6d 61 6e 69 66 |ets.adding manif|
1019 0080: 65 73 74 73 0a 61 64 64 69 6e 67 20 66 69 6c 65 |ests.adding file|
1019 0080: 65 73 74 73 0a 61 64 64 69 6e 67 20 66 69 6c 65 |ests.adding file|
1020 0090: 20 63 68 61 6e 67 65 73 0a 61 64 64 65 64 20 30 | changes.added 0|
1020 0090: 20 63 68 61 6e 67 65 73 0a 61 64 64 65 64 20 30 | changes.added 0|
1021 00a0: 20 63 68 61 6e 67 65 73 65 74 73 20 77 69 74 68 | changesets with|
1021 00a0: 20 63 68 61 6e 67 65 73 65 74 73 20 77 69 74 68 | changesets with|
1022 00b0: 20 30 20 63 68 61 6e 67 65 73 20 74 6f 20 33 20 | 0 changes to 3 |
1022 00b0: 20 30 20 63 68 61 6e 67 65 73 20 74 6f 20 33 20 | 0 changes to 3 |
1023 00c0: 66 69 6c 65 73 0a 00 00 00 00 00 00 00 00 |files.........|
1023 00c0: 66 69 6c 65 73 0a 00 00 00 00 00 00 00 00 |files.........|
1024
1024
1025 Check handling of exception during generation.
1025 Check handling of exception during generation.
1026 ----------------------------------------------
1026 ----------------------------------------------
1027
1027
1028 $ hg bundle2 --genraise > ../genfailed.hg2
1028 $ hg bundle2 --genraise > ../genfailed.hg2
1029 abort: Someone set up us the bomb!
1029 abort: Someone set up us the bomb!
1030 [255]
1030 [255]
1031
1031
1032 Should still be a valid bundle
1032 Should still be a valid bundle
1033
1033
1034 $ f --hexdump ../genfailed.hg2
1034 $ f --hexdump ../genfailed.hg2
1035 ../genfailed.hg2:
1035 ../genfailed.hg2:
1036 0000: 48 47 32 30 00 00 00 00 00 00 00 0d 06 6f 75 74 |HG20.........out|
1036 0000: 48 47 32 30 00 00 00 00 00 00 00 0d 06 6f 75 74 |HG20.........out|
1037 0010: 70 75 74 00 00 00 00 00 00 ff ff ff ff 00 00 00 |put.............|
1037 0010: 70 75 74 00 00 00 00 00 00 ff ff ff ff 00 00 00 |put.............|
1038 0020: 48 0b 65 72 72 6f 72 3a 61 62 6f 72 74 00 00 00 |H.error:abort...|
1038 0020: 48 0b 65 72 72 6f 72 3a 61 62 6f 72 74 00 00 00 |H.error:abort...|
1039 0030: 00 01 00 07 2d 6d 65 73 73 61 67 65 75 6e 65 78 |....-messageunex|
1039 0030: 00 01 00 07 2d 6d 65 73 73 61 67 65 75 6e 65 78 |....-messageunex|
1040 0040: 70 65 63 74 65 64 20 65 72 72 6f 72 3a 20 53 6f |pected error: So|
1040 0040: 70 65 63 74 65 64 20 65 72 72 6f 72 3a 20 53 6f |pected error: So|
1041 0050: 6d 65 6f 6e 65 20 73 65 74 20 75 70 20 75 73 20 |meone set up us |
1041 0050: 6d 65 6f 6e 65 20 73 65 74 20 75 70 20 75 73 20 |meone set up us |
1042 0060: 74 68 65 20 62 6f 6d 62 21 00 00 00 00 00 00 00 |the bomb!.......|
1042 0060: 74 68 65 20 62 6f 6d 62 21 00 00 00 00 00 00 00 |the bomb!.......|
1043 0070: 00 |.|
1043 0070: 00 |.|
1044
1044
1045 And its handling on the other size raise a clean exception
1045 And its handling on the other size raise a clean exception
1046
1046
1047 $ cat ../genfailed.hg2 | hg unbundle2
1047 $ cat ../genfailed.hg2 | hg unbundle2
1048 0 unread bytes
1048 0 unread bytes
1049 abort: unexpected error: Someone set up us the bomb!
1049 abort: unexpected error: Someone set up us the bomb!
1050 [255]
1050 [255]
1051
1051
1052 Test compression
1052 Test compression
1053 ================
1053 ================
1054
1054
1055 Simple case where it just work: GZ
1055 Simple case where it just work: GZ
1056 ----------------------------------
1056 ----------------------------------
1057
1057
1058 $ hg bundle2 --compress GZ --rev '8+7+5+4' ../rev.hg2.bz
1058 $ hg bundle2 --compress GZ --rev '8+7+5+4' ../rev.hg2.bz
1059 $ f --hexdump ../rev.hg2.bz
1059 $ f --hexdump ../rev.hg2.bz
1060 ../rev.hg2.bz:
1060 ../rev.hg2.bz:
1061 0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|
1061 0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|
1062 0010: 69 6f 6e 3d 47 5a 78 9c 95 94 7d 68 95 55 1c c7 |ion=GZx...}h.U..|
1062 0010: 69 6f 6e 3d 47 5a 78 9c 95 94 7d 68 95 55 1c c7 |ion=GZx...}h.U..|
1063 0020: 9f 3b 31 e8 ce fa c3 65 be a0 a4 b4 52 b9 29 e7 |.;1....e....R.).|
1063 0020: 9f 3b 31 e8 ce fa c3 65 be a0 a4 b4 52 b9 29 e7 |.;1....e....R.).|
1064 0030: f5 79 ce 89 fa 63 ed 5e 77 8b 9c c3 3f 2a 1c 68 |.y...c.^w...?*.h|
1064 0030: f5 79 ce 89 fa 63 ed 5e 77 8b 9c c3 3f 2a 1c 68 |.y...c.^w...?*.h|
1065 0040: cf 79 9b dd 6a ae b0 28 74 b8 e5 96 5b bb 86 61 |.y..j..(t...[..a|
1065 0040: cf 79 9b dd 6a ae b0 28 74 b8 e5 96 5b bb 86 61 |.y..j..(t...[..a|
1066 0050: a3 15 6e 3a 71 c8 6a e8 a5 da 95 64 28 22 ce 69 |..n:q.j....d(".i|
1066 0050: a3 15 6e 3a 71 c8 6a e8 a5 da 95 64 28 22 ce 69 |..n:q.j....d(".i|
1067 0060: cd 06 59 34 28 2b 51 2a 58 c3 17 56 2a 9a 9d 67 |..Y4(+Q*X..V*..g|
1067 0060: cd 06 59 34 28 2b 51 2a 58 c3 17 56 2a 9a 9d 67 |..Y4(+Q*X..V*..g|
1068 0070: dc c6 35 9e c4 1d f8 9e 87 f3 9c f3 3b bf 0f bf |..5.........;...|
1068 0070: dc c6 35 9e c4 1d f8 9e 87 f3 9c f3 3b bf 0f bf |..5.........;...|
1069 0080: 97 e3 38 ce f4 42 b9 d6 af ae d2 55 af ae 7b ad |..8..B.....U..{.|
1069 0080: 97 e3 38 ce f4 42 b9 d6 af ae d2 55 af ae 7b ad |..8..B.....U..{.|
1070 0090: c6 c9 8d bb 8a ec b4 07 ed 7f fd ed d3 53 be 4e |.............S.N|
1070 0090: c6 c9 8d bb 8a ec b4 07 ed 7f fd ed d3 53 be 4e |.............S.N|
1071 00a0: f4 0e af 59 52 73 ea 50 d7 96 9e ba d4 9a 1f 87 |...YRs.P........|
1071 00a0: f4 0e af 59 52 73 ea 50 d7 96 9e ba d4 9a 1f 87 |...YRs.P........|
1072 00b0: 9b 9f 1d e8 7a 6a 79 e9 cb 7f cf eb fe 7e d3 82 |....zjy......~..|
1072 00b0: 9b 9f 1d e8 7a 6a 79 e9 cb 7f cf eb fe 7e d3 82 |....zjy......~..|
1073 00c0: ce 2f 36 38 21 23 cc 36 b7 b5 38 90 ab a1 21 92 |./68!#.6..8...!.|
1073 00c0: ce 2f 36 38 21 23 cc 36 b7 b5 38 90 ab a1 21 92 |./68!#.6..8...!.|
1074 00d0: 78 5a 0a 8a b1 31 0a 48 a6 29 92 4a 32 e6 1b e1 |xZ...1.H.).J2...|
1074 00d0: 78 5a 0a 8a b1 31 0a 48 a6 29 92 4a 32 e6 1b e1 |xZ...1.H.).J2...|
1075 00e0: 4a 85 b9 46 40 46 ed 61 63 b5 d6 aa 20 1e ac 5e |J..F@F.ac... ..^|
1075 00e0: 4a 85 b9 46 40 46 ed 61 63 b5 d6 aa 20 1e ac 5e |J..F@F.ac... ..^|
1076 00f0: b0 0a ae 8a c4 03 c6 d6 f9 a3 7b eb fb 4e de 7f |..........{..N..|
1076 00f0: b0 0a ae 8a c4 03 c6 d6 f9 a3 7b eb fb 4e de 7f |..........{..N..|
1077 0100: e4 97 55 5f 15 76 96 d2 5d bf 9d 3f 38 18 29 4c |..U_.v..]..?8.)L|
1077 0100: e4 97 55 5f 15 76 96 d2 5d bf 9d 3f 38 18 29 4c |..U_.v..]..?8.)L|
1078 0110: 0f b7 5d 6e 9b b3 aa 7e c6 d5 15 5b f7 7c 52 f1 |..]n...~...[.|R.|
1078 0110: 0f b7 5d 6e 9b b3 aa 7e c6 d5 15 5b f7 7c 52 f1 |..]n...~...[.|R.|
1079 0120: 7c 73 18 63 98 6d 3e 23 51 5a 6a 2e 19 72 8d cb ||s.c.m>#QZj..r..|
1079 0120: 7c 73 18 63 98 6d 3e 23 51 5a 6a 2e 19 72 8d cb ||s.c.m>#QZj..r..|
1080 0130: 09 07 14 78 82 33 e9 62 86 7d 0c 00 17 88 53 86 |...x.3.b.}....S.|
1080 0130: 09 07 14 78 82 33 e9 62 86 7d 0c 00 17 88 53 86 |...x.3.b.}....S.|
1081 0140: 3d 75 0b 63 e2 16 c6 84 9d 76 8f 76 7a cb de fc |=u.c.....v.vz...|
1081 0140: 3d 75 0b 63 e2 16 c6 84 9d 76 8f 76 7a cb de fc |=u.c.....v.vz...|
1082 0150: a8 a3 f0 46 d3 a5 f6 c7 96 b6 9f 60 3b 57 ae 28 |...F.......`;W.(|
1082 0150: a8 a3 f0 46 d3 a5 f6 c7 96 b6 9f 60 3b 57 ae 28 |...F.......`;W.(|
1083 0160: ce b2 8d e9 f4 3e 6f 66 53 dd e5 6b ad 67 be f9 |.....>ofS..k.g..|
1083 0160: ce b2 8d e9 f4 3e 6f 66 53 dd e5 6b ad 67 be f9 |.....>ofS..k.g..|
1084 0170: 72 ee 5f 8d 61 3c 61 b6 f9 8c d8 a5 82 63 45 3d |r._.a<a......cE=|
1084 0170: 72 ee 5f 8d 61 3c 61 b6 f9 8c d8 a5 82 63 45 3d |r._.a<a......cE=|
1085 0180: a3 0c 61 90 68 24 28 87 50 b9 c2 97 c6 20 01 11 |..a.h$(.P.... ..|
1085 0180: a3 0c 61 90 68 24 28 87 50 b9 c2 97 c6 20 01 11 |..a.h$(.P.... ..|
1086 0190: 80 84 10 98 cf e8 e4 13 96 05 51 2c 38 f3 c4 ec |..........Q,8...|
1086 0190: 80 84 10 98 cf e8 e4 13 96 05 51 2c 38 f3 c4 ec |..........Q,8...|
1087 01a0: ea 43 e7 96 5e 6a c8 be 11 dd 32 78 a2 fa dd 8f |.C..^j....2x....|
1087 01a0: ea 43 e7 96 5e 6a c8 be 11 dd 32 78 a2 fa dd 8f |.C..^j....2x....|
1088 01b0: b3 61 84 61 51 0c b3 cd 27 64 42 6b c2 b4 92 1e |.a.aQ...'dBk....|
1088 01b0: b3 61 84 61 51 0c b3 cd 27 64 42 6b c2 b4 92 1e |.a.aQ...'dBk....|
1089 01c0: 86 8c 12 68 24 00 10 db 7f 50 00 c6 91 e7 fa 4c |...h$....P.....L|
1089 01c0: 86 8c 12 68 24 00 10 db 7f 50 00 c6 91 e7 fa 4c |...h$....P.....L|
1090 01d0: 22 22 cc bf 84 81 0a 92 c1 aa 2a c7 1b 49 e6 ee |""........*..I..|
1090 01d0: 22 22 cc bf 84 81 0a 92 c1 aa 2a c7 1b 49 e6 ee |""........*..I..|
1091 01e0: 6b a9 7e e0 e9 b2 91 5e 7c 73 68 e0 fc 23 3f 34 |k.~....^|sh..#?4|
1091 01e0: 6b a9 7e e0 e9 b2 91 5e 7c 73 68 e0 fc 23 3f 34 |k.~....^|sh..#?4|
1092 01f0: ed cf 0e f2 b3 d3 4c d7 ae 59 33 6f 8c 3d b8 63 |......L..Y3o.=.c|
1092 01f0: ed cf 0e f2 b3 d3 4c d7 ae 59 33 6f 8c 3d b8 63 |......L..Y3o.=.c|
1093 0200: 21 2b e8 3d e0 6f 9d 3a b7 f9 dc 24 2a b2 3e a7 |!+.=.o.:...$*.>.|
1093 0200: 21 2b e8 3d e0 6f 9d 3a b7 f9 dc 24 2a b2 3e a7 |!+.=.o.:...$*.>.|
1094 0210: 58 dc 91 d8 40 e9 23 8e 88 84 ae 0f b9 00 2e b5 |X...@.#.........|
1094 0210: 58 dc 91 d8 40 e9 23 8e 88 84 ae 0f b9 00 2e b5 |X...@.#.........|
1095 0220: 74 36 f3 40 53 40 34 15 c0 d7 12 8d e7 bb 65 f9 |t6.@S@4.......e.|
1095 0220: 74 36 f3 40 53 40 34 15 c0 d7 12 8d e7 bb 65 f9 |t6.@S@4.......e.|
1096 0230: c8 ef 03 0f ff f9 fe b6 8a 0d 6d fd ec 51 70 f7 |..........m..Qp.|
1096 0230: c8 ef 03 0f ff f9 fe b6 8a 0d 6d fd ec 51 70 f7 |..........m..Qp.|
1097 0240: a7 ad 9b 6b 9d da 74 7b 53 43 d1 43 63 fd 19 f9 |...k..t{SC.Cc...|
1097 0240: a7 ad 9b 6b 9d da 74 7b 53 43 d1 43 63 fd 19 f9 |...k..t{SC.Cc...|
1098 0250: ca 67 95 e5 ef c4 e6 6c 9e 44 e1 c5 ac 7a 82 6f |.g.....l.D...z.o|
1098 0250: ca 67 95 e5 ef c4 e6 6c 9e 44 e1 c5 ac 7a 82 6f |.g.....l.D...z.o|
1099 0260: c2 e1 d2 b5 2d 81 29 f0 5d 09 6c 6f 10 ae 88 cf |....-.).].lo....|
1099 0260: c2 e1 d2 b5 2d 81 29 f0 5d 09 6c 6f 10 ae 88 cf |....-.).].lo....|
1100 0270: 25 05 d0 93 06 78 80 60 43 2d 10 1b 47 71 2b b7 |%....x.`C-..Gq+.|
1100 0270: 25 05 d0 93 06 78 80 60 43 2d 10 1b 47 71 2b b7 |%....x.`C-..Gq+.|
1101 0280: 7f bb e9 a7 e4 7d 67 7b df 9b f7 62 cf cd d8 f4 |.....}g{...b....|
1101 0280: 7f bb e9 a7 e4 7d 67 7b df 9b f7 62 cf cd d8 f4 |.....}g{...b....|
1102 0290: 48 bc 64 51 57 43 ff ea 8b 0b ae 74 64 53 07 86 |H.dQWC.....tdS..|
1102 0290: 48 bc 64 51 57 43 ff ea 8b 0b ae 74 64 53 07 86 |H.dQWC.....tdS..|
1103 02a0: fa 66 3c 5e f7 e1 af a7 c2 90 ff a7 be 9e c9 29 |.f<^...........)|
1103 02a0: fa 66 3c 5e f7 e1 af a7 c2 90 ff a7 be 9e c9 29 |.f<^...........)|
1104 02b0: b6 cc 41 48 18 69 94 8b 7c 04 7d 8c 98 a7 95 50 |..AH.i..|.}....P|
1104 02b0: b6 cc 41 48 18 69 94 8b 7c 04 7d 8c 98 a7 95 50 |..AH.i..|.}....P|
1105 02c0: 44 d9 d0 20 c8 14 30 14 51 ad 6c 16 03 94 0f 5a |D.. ..0.Q.l....Z|
1105 02c0: 44 d9 d0 20 c8 14 30 14 51 ad 6c 16 03 94 0f 5a |D.. ..0.Q.l....Z|
1106 02d0: 46 93 7f 1c 87 8d 25 d7 9d a2 d1 92 4c f3 c2 54 |F.....%.....L..T|
1106 02d0: 46 93 7f 1c 87 8d 25 d7 9d a2 d1 92 4c f3 c2 54 |F.....%.....L..T|
1107 02e0: ba f8 70 18 ca 24 0a 29 96 43 71 f2 93 95 74 18 |..p..$.).Cq...t.|
1107 02e0: ba f8 70 18 ca 24 0a 29 96 43 71 f2 93 95 74 18 |..p..$.).Cq...t.|
1108 02f0: b5 65 c4 b8 f6 6c 5c 34 20 1e d5 0c 21 c0 b1 90 |.e...l\4 ...!...|
1108 02f0: b5 65 c4 b8 f6 6c 5c 34 20 1e d5 0c 21 c0 b1 90 |.e...l\4 ...!...|
1109 0300: 9e 12 40 b9 18 fa 5a 00 41 a2 39 d3 a9 c1 73 21 |..@...Z.A.9...s!|
1109 0300: 9e 12 40 b9 18 fa 5a 00 41 a2 39 d3 a9 c1 73 21 |..@...Z.A.9...s!|
1110 0310: 8e 5e 3c b9 b8 f8 48 6a 76 46 a7 1a b6 dd 5b 51 |.^<...HjvF....[Q|
1110 0310: 8e 5e 3c b9 b8 f8 48 6a 76 46 a7 1a b6 dd 5b 51 |.^<...HjvF....[Q|
1111 0320: 5e 19 1d 59 12 c6 32 89 02 9a c0 8f 4f b8 0a ba |^..Y..2.....O...|
1111 0320: 5e 19 1d 59 12 c6 32 89 02 9a c0 8f 4f b8 0a ba |^..Y..2.....O...|
1112 0330: 5e ec 58 37 44 a3 2f dd 33 ed c9 d3 dd c7 22 1b |^.X7D./.3.....".|
1112 0330: 5e ec 58 37 44 a3 2f dd 33 ed c9 d3 dd c7 22 1b |^.X7D./.3.....".|
1113 0340: 2f d4 94 8e 95 3f 77 a7 ae 6e f3 32 8d bb 4a 4c |/....?w..n.2..JL|
1113 0340: 2f d4 94 8e 95 3f 77 a7 ae 6e f3 32 8d bb 4a 4c |/....?w..n.2..JL|
1114 0350: b8 0a 5a 43 34 3a b3 3a d6 77 ff 5c b6 fa ad f9 |..ZC4:.:.w.\....|
1114 0350: b8 0a 5a 43 34 3a b3 3a d6 77 ff 5c b6 fa ad f9 |..ZC4:.:.w.\....|
1115 0360: db fb 6a 33 df c1 7d 99 cf ef d4 d5 6d da 77 7c |..j3..}.....m.w||
1115 0360: db fb 6a 33 df c1 7d 99 cf ef d4 d5 6d da 77 7c |..j3..}.....m.w||
1116 0370: 3b 19 fd af c5 3f f1 60 c3 17 |;....?.`..|
1116 0370: 3b 19 fd af c5 3f f1 60 c3 17 |;....?.`..|
1117 $ hg debugbundle ../rev.hg2.bz
1117 $ hg debugbundle ../rev.hg2.bz
1118 Stream params: {'Compression': 'GZ'}
1118 Stream params: {'Compression': 'GZ'}
1119 changegroup -- '{}'
1119 changegroup -- '{}'
1120 32af7686d403cf45b5d95f2d70cebea587ac806a
1120 32af7686d403cf45b5d95f2d70cebea587ac806a
1121 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
1121 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
1122 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
1122 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
1123 02de42196ebee42ef284b6780a87cdc96e8eaab6
1123 02de42196ebee42ef284b6780a87cdc96e8eaab6
1124 $ hg unbundle ../rev.hg2.bz
1124 $ hg unbundle ../rev.hg2.bz
1125 adding changesets
1125 adding changesets
1126 adding manifests
1126 adding manifests
1127 adding file changes
1127 adding file changes
1128 added 0 changesets with 0 changes to 3 files
1128 added 0 changesets with 0 changes to 3 files
1129 (run 'hg update' to get a working copy)
1129 (run 'hg update' to get a working copy)
1130 Simple case where it just work: BZ
1130 Simple case where it just work: BZ
1131 ----------------------------------
1131 ----------------------------------
1132
1132
1133 $ hg bundle2 --compress BZ --rev '8+7+5+4' ../rev.hg2.bz
1133 $ hg bundle2 --compress BZ --rev '8+7+5+4' ../rev.hg2.bz
1134 $ f --hexdump ../rev.hg2.bz
1134 $ f --hexdump ../rev.hg2.bz
1135 ../rev.hg2.bz:
1135 ../rev.hg2.bz:
1136 0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|
1136 0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|
1137 0010: 69 6f 6e 3d 42 5a 42 5a 68 39 31 41 59 26 53 59 |ion=BZBZh91AY&SY|
1137 0010: 69 6f 6e 3d 42 5a 42 5a 68 39 31 41 59 26 53 59 |ion=BZBZh91AY&SY|
1138 0020: a3 4b 18 3d 00 00 1a 7f ff ff bf 5f f6 ef ef 7f |.K.=......._....|
1138 0020: a3 4b 18 3d 00 00 1a 7f ff ff bf 5f f6 ef ef 7f |.K.=......._....|
1139 0030: f6 3f f7 d1 d9 ff ff f7 6e ff ff 6e f7 f6 bd df |.?......n..n....|
1139 0030: f6 3f f7 d1 d9 ff ff f7 6e ff ff 6e f7 f6 bd df |.?......n..n....|
1140 0040: b5 ab ff cf 67 f6 e7 7b f7 c0 02 d7 33 82 8b 51 |....g..{....3..Q|
1140 0040: b5 ab ff cf 67 f6 e7 7b f7 c0 02 d7 33 82 8b 51 |....g..{....3..Q|
1141 0050: 04 a5 53 d5 3d 27 a0 99 18 4d 0d 34 00 d1 a1 e8 |..S.='...M.4....|
1141 0050: 04 a5 53 d5 3d 27 a0 99 18 4d 0d 34 00 d1 a1 e8 |..S.='...M.4....|
1142 0060: 80 c8 7a 87 a9 a3 43 6a 3d 46 86 26 80 34 3d 40 |..z...Cj=F.&.4=@|
1142 0060: 80 c8 7a 87 a9 a3 43 6a 3d 46 86 26 80 34 3d 40 |..z...Cj=F.&.4=@|
1143 0070: c8 c9 b5 34 f4 8f 48 0f 51 ea 34 34 fd 4d aa 19 |...4..H.Q.44.M..|
1143 0070: c8 c9 b5 34 f4 8f 48 0f 51 ea 34 34 fd 4d aa 19 |...4..H.Q.44.M..|
1144 0080: 03 40 0c 08 da 86 43 d4 f5 0f 42 1e a0 f3 54 33 |.@....C...B...T3|
1144 0080: 03 40 0c 08 da 86 43 d4 f5 0f 42 1e a0 f3 54 33 |.@....C...B...T3|
1145 0090: 54 d3 13 4d 03 40 32 00 00 32 03 26 80 0d 00 0d |T..M.@2..2.&....|
1145 0090: 54 d3 13 4d 03 40 32 00 00 32 03 26 80 0d 00 0d |T..M.@2..2.&....|
1146 00a0: 00 68 c8 c8 03 20 32 30 98 8c 80 00 00 03 4d 00 |.h... 20......M.|
1146 00a0: 00 68 c8 c8 03 20 32 30 98 8c 80 00 00 03 4d 00 |.h... 20......M.|
1147 00b0: c8 00 00 0d 00 00 22 99 a1 34 c2 64 a6 d5 34 1a |......"..4.d..4.|
1147 00b0: c8 00 00 0d 00 00 22 99 a1 34 c2 64 a6 d5 34 1a |......"..4.d..4.|
1148 00c0: 00 00 06 86 83 4d 07 a8 d1 a0 68 01 a0 00 00 00 |.....M....h.....|
1148 00c0: 00 00 06 86 83 4d 07 a8 d1 a0 68 01 a0 00 00 00 |.....M....h.....|
1149 00d0: 00 0d 06 80 00 00 00 0d 00 03 40 00 00 04 a4 a1 |..........@.....|
1149 00d0: 00 0d 06 80 00 00 00 0d 00 03 40 00 00 04 a4 a1 |..........@.....|
1150 00e0: 4d a9 89 89 b4 9a 32 0c 43 46 86 87 a9 8d 41 9a |M.....2.CF....A.|
1150 00e0: 4d a9 89 89 b4 9a 32 0c 43 46 86 87 a9 8d 41 9a |M.....2.CF....A.|
1151 00f0: 98 46 9a 0d 31 32 1a 34 0d 0c 8d a2 0c 98 4d 06 |.F..12.4......M.|
1151 00f0: 98 46 9a 0d 31 32 1a 34 0d 0c 8d a2 0c 98 4d 06 |.F..12.4......M.|
1152 0100: 8c 40 c2 60 8d 0d 0c 20 c9 89 fa a0 d0 d3 21 a1 |.@.`... ......!.|
1152 0100: 8c 40 c2 60 8d 0d 0c 20 c9 89 fa a0 d0 d3 21 a1 |.@.`... ......!.|
1153 0110: ea 34 d3 68 9e a6 d1 74 05 33 cb 66 96 93 28 64 |.4.h...t.3.f..(d|
1153 0110: ea 34 d3 68 9e a6 d1 74 05 33 cb 66 96 93 28 64 |.4.h...t.3.f..(d|
1154 0120: 40 91 22 ac 55 9b ea 40 7b 38 94 e2 f8 06 00 cb |@.".U..@{8......|
1154 0120: 40 91 22 ac 55 9b ea 40 7b 38 94 e2 f8 06 00 cb |@.".U..@{8......|
1155 0130: 28 02 00 4d ab 40 24 10 43 18 cf 64 b4 06 83 0c |(..M.@$.C..d....|
1155 0130: 28 02 00 4d ab 40 24 10 43 18 cf 64 b4 06 83 0c |(..M.@$.C..d....|
1156 0140: 34 6c b4 a3 d4 0a 0a e4 a8 5c 4e 23 c0 c9 7a 31 |4l.......\N#..z1|
1156 0140: 34 6c b4 a3 d4 0a 0a e4 a8 5c 4e 23 c0 c9 7a 31 |4l.......\N#..z1|
1157 0150: 97 87 77 7a 64 88 80 8e 60 97 20 93 0f 8e eb c4 |..wzd...`. .....|
1157 0150: 97 87 77 7a 64 88 80 8e 60 97 20 93 0f 8e eb c4 |..wzd...`. .....|
1158 0160: 62 a4 44 a3 52 20 b2 99 a9 2e e1 d7 29 4a 54 ac |b.D.R ......)JT.|
1158 0160: 62 a4 44 a3 52 20 b2 99 a9 2e e1 d7 29 4a 54 ac |b.D.R ......)JT.|
1159 0170: 44 7a bb cc 04 3d e0 aa bd 6a 33 5e 9b a2 57 36 |Dz...=...j3^..W6|
1159 0170: 44 7a bb cc 04 3d e0 aa bd 6a 33 5e 9b a2 57 36 |Dz...=...j3^..W6|
1160 0180: fa cb 45 bb 6d 3e c1 d9 d9 f5 83 69 8a d0 e0 e2 |..E.m>.....i....|
1160 0180: fa cb 45 bb 6d 3e c1 d9 d9 f5 83 69 8a d0 e0 e2 |..E.m>.....i....|
1161 0190: e7 ae 90 55 24 da 3f ab 78 c0 4c b4 56 a3 9e a4 |...U$.?.x.L.V...|
1161 0190: e7 ae 90 55 24 da 3f ab 78 c0 4c b4 56 a3 9e a4 |...U$.?.x.L.V...|
1162 01a0: af 9c 65 74 86 ec 6d dc 62 dc 33 ca c8 50 dd 9d |..et..m.b.3..P..|
1162 01a0: af 9c 65 74 86 ec 6d dc 62 dc 33 ca c8 50 dd 9d |..et..m.b.3..P..|
1163 01b0: 98 8e 9e 59 20 f3 f0 42 91 4a 09 f5 75 8d 3d a5 |...Y ..B.J..u.=.|
1163 01b0: 98 8e 9e 59 20 f3 f0 42 91 4a 09 f5 75 8d 3d a5 |...Y ..B.J..u.=.|
1164 01c0: a5 15 cb 8d 10 63 b0 c2 2e b2 81 f7 c1 76 0e 53 |.....c.......v.S|
1164 01c0: a5 15 cb 8d 10 63 b0 c2 2e b2 81 f7 c1 76 0e 53 |.....c.......v.S|
1165 01d0: 6c 0e 46 73 b5 ae 67 f9 4c 0b 45 6b a8 32 2a 2f |l.Fs..g.L.Ek.2*/|
1165 01d0: 6c 0e 46 73 b5 ae 67 f9 4c 0b 45 6b a8 32 2a 2f |l.Fs..g.L.Ek.2*/|
1166 01e0: a2 54 a4 44 05 20 a1 38 d1 a4 c6 09 a8 2b 08 99 |.T.D. .8.....+..|
1166 01e0: a2 54 a4 44 05 20 a1 38 d1 a4 c6 09 a8 2b 08 99 |.T.D. .8.....+..|
1167 01f0: a4 14 ae 8d a3 e3 aa 34 27 d8 44 ca c3 5d 21 8b |.......4'.D..]!.|
1167 01f0: a4 14 ae 8d a3 e3 aa 34 27 d8 44 ca c3 5d 21 8b |.......4'.D..]!.|
1168 0200: 1a 1e 97 29 71 2b 09 4a 4a 55 55 94 58 65 b2 bc |...)q+.JJUU.Xe..|
1168 0200: 1a 1e 97 29 71 2b 09 4a 4a 55 55 94 58 65 b2 bc |...)q+.JJUU.Xe..|
1169 0210: f3 a5 90 26 36 76 67 7a 51 98 d6 8a 4a 99 50 b5 |...&6vgzQ...J.P.|
1169 0210: f3 a5 90 26 36 76 67 7a 51 98 d6 8a 4a 99 50 b5 |...&6vgzQ...J.P.|
1170 0220: 99 8f 94 21 17 a9 8b f3 ad 4c 33 d4 2e 40 c8 0c |...!.....L3..@..|
1170 0220: 99 8f 94 21 17 a9 8b f3 ad 4c 33 d4 2e 40 c8 0c |...!.....L3..@..|
1171 0230: 3b 90 53 39 db 48 02 34 83 48 d6 b3 99 13 d2 58 |;.S9.H.4.H.....X|
1171 0230: 3b 90 53 39 db 48 02 34 83 48 d6 b3 99 13 d2 58 |;.S9.H.4.H.....X|
1172 0240: 65 8e 71 ac a9 06 95 f2 c4 8e b4 08 6b d3 0c ae |e.q.........k...|
1172 0240: 65 8e 71 ac a9 06 95 f2 c4 8e b4 08 6b d3 0c ae |e.q.........k...|
1173 0250: d9 90 56 71 43 a7 a2 62 16 3e 50 63 d3 57 3c 2d |..VqC..b.>Pc.W<-|
1173 0250: d9 90 56 71 43 a7 a2 62 16 3e 50 63 d3 57 3c 2d |..VqC..b.>Pc.W<-|
1174 0260: 9f 0f 34 05 08 d8 a6 4b 59 31 54 66 3a 45 0c 8a |..4....KY1Tf:E..|
1174 0260: 9f 0f 34 05 08 d8 a6 4b 59 31 54 66 3a 45 0c 8a |..4....KY1Tf:E..|
1175 0270: c7 90 3a f0 6a 83 1b f5 ca fb 80 2b 50 06 fb 51 |..:.j......+P..Q|
1175 0270: c7 90 3a f0 6a 83 1b f5 ca fb 80 2b 50 06 fb 51 |..:.j......+P..Q|
1176 0280: 7e a6 a4 d4 81 44 82 21 54 00 5b 1a 30 83 62 a3 |~....D.!T.[.0.b.|
1176 0280: 7e a6 a4 d4 81 44 82 21 54 00 5b 1a 30 83 62 a3 |~....D.!T.[.0.b.|
1177 0290: 18 b6 24 19 1e 45 df 4d 5c db a6 af 5b ac 90 fa |..$..E.M\...[...|
1177 0290: 18 b6 24 19 1e 45 df 4d 5c db a6 af 5b ac 90 fa |..$..E.M\...[...|
1178 02a0: 3e ed f9 ec 4c ba 36 ee d8 60 20 a7 c7 3b cb d1 |>...L.6..` ..;..|
1178 02a0: 3e ed f9 ec 4c ba 36 ee d8 60 20 a7 c7 3b cb d1 |>...L.6..` ..;..|
1179 02b0: 90 43 7d 27 16 50 5d ad f4 14 07 0b 90 5c cc 6b |.C}'.P]......\.k|
1179 02b0: 90 43 7d 27 16 50 5d ad f4 14 07 0b 90 5c cc 6b |.C}'.P]......\.k|
1180 02c0: 8d 3f a6 88 f4 34 37 a8 cf 14 63 36 19 f7 3e 28 |.?...47...c6..>(|
1180 02c0: 8d 3f a6 88 f4 34 37 a8 cf 14 63 36 19 f7 3e 28 |.?...47...c6..>(|
1181 02d0: de 99 e8 16 a4 9d 0d 40 a1 a7 24 52 14 a6 72 62 |.......@..$R..rb|
1181 02d0: de 99 e8 16 a4 9d 0d 40 a1 a7 24 52 14 a6 72 62 |.......@..$R..rb|
1182 02e0: 59 5a ca 2d e5 51 90 78 88 d9 c6 c7 21 d0 f7 46 |YZ.-.Q.x....!..F|
1182 02e0: 59 5a ca 2d e5 51 90 78 88 d9 c6 c7 21 d0 f7 46 |YZ.-.Q.x....!..F|
1183 02f0: b2 04 46 44 4e 20 9c 12 b1 03 4e 25 e0 a9 0c 58 |..FDN ....N%...X|
1183 02f0: b2 04 46 44 4e 20 9c 12 b1 03 4e 25 e0 a9 0c 58 |..FDN ....N%...X|
1184 0300: 5b 1d 3c 93 20 01 51 de a9 1c 69 23 32 46 14 b4 |[.<. .Q...i#2F..|
1184 0300: 5b 1d 3c 93 20 01 51 de a9 1c 69 23 32 46 14 b4 |[.<. .Q...i#2F..|
1185 0310: 90 db 17 98 98 50 03 90 29 aa 40 b0 13 d8 43 d2 |.....P..).@...C.|
1185 0310: 90 db 17 98 98 50 03 90 29 aa 40 b0 13 d8 43 d2 |.....P..).@...C.|
1186 0320: 5f c5 9d eb f3 f2 ad 41 e8 7a a9 ed a1 58 84 a6 |_......A.z...X..|
1186 0320: 5f c5 9d eb f3 f2 ad 41 e8 7a a9 ed a1 58 84 a6 |_......A.z...X..|
1187 0330: 42 bf d6 fc 24 82 c1 20 32 26 4a 15 a6 1d 29 7f |B...$.. 2&J...).|
1187 0330: 42 bf d6 fc 24 82 c1 20 32 26 4a 15 a6 1d 29 7f |B...$.. 2&J...).|
1188 0340: 7e f4 3d 07 bc 62 9a 5b ec 44 3d 72 1d 41 8b 5c |~.=..b.[.D=r.A.\|
1188 0340: 7e f4 3d 07 bc 62 9a 5b ec 44 3d 72 1d 41 8b 5c |~.=..b.[.D=r.A.\|
1189 0350: 80 de 0e 62 9a 2e f8 83 00 d5 07 a0 9c c6 74 98 |...b..........t.|
1189 0350: 80 de 0e 62 9a 2e f8 83 00 d5 07 a0 9c c6 74 98 |...b..........t.|
1190 0360: 11 b2 5e a9 38 02 03 ee fd 86 5c f4 86 b3 ae da |..^.8.....\.....|
1190 0360: 11 b2 5e a9 38 02 03 ee fd 86 5c f4 86 b3 ae da |..^.8.....\.....|
1191 0370: 05 94 01 c5 c6 ea 18 e6 ba 2a ba b3 04 5c 96 89 |.........*...\..|
1191 0370: 05 94 01 c5 c6 ea 18 e6 ba 2a ba b3 04 5c 96 89 |.........*...\..|
1192 0380: 72 63 5b 10 11 f6 67 34 98 cb e4 c0 4e fa e6 99 |rc[...g4....N...|
1192 0380: 72 63 5b 10 11 f6 67 34 98 cb e4 c0 4e fa e6 99 |rc[...g4....N...|
1193 0390: 19 6e 50 e8 26 8d 0c 17 e0 be ef e1 8e 02 6f 32 |.nP.&.........o2|
1193 0390: 19 6e 50 e8 26 8d 0c 17 e0 be ef e1 8e 02 6f 32 |.nP.&.........o2|
1194 03a0: 82 dc 26 f8 a1 08 f3 8a 0d f3 c4 75 00 48 73 b8 |..&........u.Hs.|
1194 03a0: 82 dc 26 f8 a1 08 f3 8a 0d f3 c4 75 00 48 73 b8 |..&........u.Hs.|
1195 03b0: be 3b 0d 7f d0 fd c7 78 96 ec e0 03 80 68 4d 8d |.;.....x.....hM.|
1195 03b0: be 3b 0d 7f d0 fd c7 78 96 ec e0 03 80 68 4d 8d |.;.....x.....hM.|
1196 03c0: 43 8c d7 68 58 f9 50 f0 18 cb 21 58 1b 60 cd 1f |C..hX.P...!X.`..|
1196 03c0: 43 8c d7 68 58 f9 50 f0 18 cb 21 58 1b 60 cd 1f |C..hX.P...!X.`..|
1197 03d0: 84 36 2e 16 1f 0a f7 4e 8f eb df 01 2d c2 79 0b |.6.....N....-.y.|
1197 03d0: 84 36 2e 16 1f 0a f7 4e 8f eb df 01 2d c2 79 0b |.6.....N....-.y.|
1198 03e0: f7 24 ea 0d e8 59 86 51 6e 1c 30 a3 ad 2f ee 8c |.$...Y.Qn.0../..|
1198 03e0: f7 24 ea 0d e8 59 86 51 6e 1c 30 a3 ad 2f ee 8c |.$...Y.Qn.0../..|
1199 03f0: 90 c8 84 d5 e8 34 c1 95 b2 c9 f6 4d 87 1c 7d 19 |.....4.....M..}.|
1199 03f0: 90 c8 84 d5 e8 34 c1 95 b2 c9 f6 4d 87 1c 7d 19 |.....4.....M..}.|
1200 0400: d6 41 58 56 7a e0 6c ba 10 c7 e8 33 39 36 96 e7 |.AXVz.l....396..|
1200 0400: d6 41 58 56 7a e0 6c ba 10 c7 e8 33 39 36 96 e7 |.AXVz.l....396..|
1201 0410: d2 f9 59 9a 08 95 48 38 e7 0b b7 0a 24 67 c4 39 |..Y...H8....$g.9|
1201 0410: d2 f9 59 9a 08 95 48 38 e7 0b b7 0a 24 67 c4 39 |..Y...H8....$g.9|
1202 0420: 8b 43 88 57 9c 01 f5 61 b5 e1 27 41 7e af 83 fe |.C.W...a..'A~...|
1202 0420: 8b 43 88 57 9c 01 f5 61 b5 e1 27 41 7e af 83 fe |.C.W...a..'A~...|
1203 0430: 2e e4 8a 70 a1 21 46 96 30 7a |...p.!F.0z|
1203 0430: 2e e4 8a 70 a1 21 46 96 30 7a |...p.!F.0z|
1204 $ hg debugbundle ../rev.hg2.bz
1204 $ hg debugbundle ../rev.hg2.bz
1205 Stream params: {'Compression': 'BZ'}
1205 Stream params: {'Compression': 'BZ'}
1206 changegroup -- '{}'
1206 changegroup -- '{}'
1207 32af7686d403cf45b5d95f2d70cebea587ac806a
1207 32af7686d403cf45b5d95f2d70cebea587ac806a
1208 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
1208 9520eea781bcca16c1e15acc0ba14335a0e8e5ba
1209 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
1209 eea13746799a9e0bfd88f29d3c2e9dc9389f524f
1210 02de42196ebee42ef284b6780a87cdc96e8eaab6
1210 02de42196ebee42ef284b6780a87cdc96e8eaab6
1211 $ hg unbundle ../rev.hg2.bz
1211 $ hg unbundle ../rev.hg2.bz
1212 adding changesets
1212 adding changesets
1213 adding manifests
1213 adding manifests
1214 adding file changes
1214 adding file changes
1215 added 0 changesets with 0 changes to 3 files
1215 added 0 changesets with 0 changes to 3 files
1216 (run 'hg update' to get a working copy)
1216 (run 'hg update' to get a working copy)
1217
1217
1218 unknown compression while unbundling
1218 unknown compression while unbundling
1219 -----------------------------
1219 -----------------------------
1220
1220
1221 $ hg bundle2 --param Compression=FooBarUnknown --rev '8+7+5+4' ../rev.hg2.bz
1221 $ hg bundle2 --param Compression=FooBarUnknown --rev '8+7+5+4' ../rev.hg2.bz
1222 $ cat ../rev.hg2.bz | hg statbundle2
1222 $ cat ../rev.hg2.bz | hg statbundle2
1223 abort: unknown parameters: Stream Parameter - Compression='FooBarUnknown'
1223 abort: unknown parameters: Stream Parameter - Compression='FooBarUnknown'
1224 [255]
1224 [255]
1225 $ hg unbundle ../rev.hg2.bz
1225 $ hg unbundle ../rev.hg2.bz
1226 abort: ../rev.hg2.bz: unknown bundle feature, Stream Parameter - Compression='FooBarUnknown'
1226 abort: ../rev.hg2.bz: unknown bundle feature, Stream Parameter - Compression='FooBarUnknown'
1227 (see https://mercurial-scm.org/wiki/BundleFeature for more information)
1227 (see https://mercurial-scm.org/wiki/BundleFeature for more information)
1228 [255]
1228 [255]
1229
1229
1230 $ cd ..
1230 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now