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