##// END OF EJS Templates
patchbomb: --desc implies --intro...
Cédric Duval -
r10734:7a0502a6 default
parent child Browse files
Show More
@@ -1,523 +1,527
1 1 # patchbomb.py - sending Mercurial changesets as patch emails
2 2 #
3 3 # Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others
4 4 #
5 5 # This software may be used and distributed according to the terms of the
6 6 # GNU General Public License version 2 or any later version.
7 7
8 8 '''command to send changesets as (a series of) patch emails
9 9
10 10 The series is started off with a "[PATCH 0 of N]" introduction, which
11 11 describes the series as a whole.
12 12
13 13 Each patch email has a Subject line of "[PATCH M of N] ...", using the
14 14 first line of the changeset description as the subject text. The
15 15 message contains two or three body parts:
16 16
17 17 - The changeset description.
18 18 - [Optional] The result of running diffstat on the patch.
19 19 - The patch itself, as generated by "hg export".
20 20
21 21 Each message refers to the first in the series using the In-Reply-To
22 22 and References headers, so they will show up as a sequence in threaded
23 23 mail and news readers, and in mail archives.
24 24
25 25 With the -d/--diffstat option, you will be prompted for each changeset
26 26 with a diffstat summary and the changeset summary, so you can be sure
27 27 you are sending the right changes.
28 28
29 29 To configure other defaults, add a section like this to your hgrc
30 30 file::
31 31
32 32 [email]
33 33 from = My Name <my@email>
34 34 to = recipient1, recipient2, ...
35 35 cc = cc1, cc2, ...
36 36 bcc = bcc1, bcc2, ...
37 37
38 38 Use ``[patchbomb]`` as configuration section name if you need to
39 39 override global ``[email]`` address settings.
40 40
41 41 Then you can use the "hg email" command to mail a series of changesets
42 42 as a patchbomb.
43 43
44 44 To avoid sending patches prematurely, it is a good idea to first run
45 45 the "email" command with the "-n" option (test only). You will be
46 46 prompted for an email recipient address, a subject and an introductory
47 47 message describing the patches of your patchbomb. Then when all is
48 48 done, patchbomb messages are displayed. If the PAGER environment
49 49 variable is set, your pager will be fired up once for each patchbomb
50 50 message, so you can verify everything is alright.
51 51
52 52 The -m/--mbox option is also very useful. Instead of previewing each
53 53 patchbomb message in a pager or sending the messages directly, it will
54 54 create a UNIX mailbox file with the patch emails. This mailbox file
55 55 can be previewed with any mail user agent which supports UNIX mbox
56 56 files, e.g. with mutt::
57 57
58 58 % mutt -R -f mbox
59 59
60 60 When you are previewing the patchbomb messages, you can use ``formail``
61 61 (a utility that is commonly installed as part of the procmail
62 62 package), to send each message out::
63 63
64 64 % formail -s sendmail -bm -t < mbox
65 65
66 66 That should be all. Now your patchbomb is on its way out.
67 67
68 68 You can also either configure the method option in the email section
69 69 to be a sendmail compatible mailer or fill out the [smtp] section so
70 70 that the patchbomb extension can automatically send patchbombs
71 71 directly from the commandline. See the [email] and [smtp] sections in
72 72 hgrc(5) for details.
73 73 '''
74 74
75 75 import os, errno, socket, tempfile, cStringIO, time
76 76 import email.MIMEMultipart, email.MIMEBase
77 77 import email.Utils, email.Encoders, email.Generator
78 78 from mercurial import cmdutil, commands, hg, mail, patch, util
79 79 from mercurial.i18n import _
80 80 from mercurial.node import bin
81 81
82 82 def prompt(ui, prompt, default=None, rest=':'):
83 83 if not ui.interactive():
84 84 if default is not None:
85 85 return default
86 86 raise util.Abort(_("%s Please enter a valid value" % (prompt + rest)))
87 87 if default:
88 88 prompt += ' [%s]' % default
89 89 prompt += rest
90 90 while True:
91 91 r = ui.prompt(prompt, default=default)
92 92 if r:
93 93 return r
94 94 if default is not None:
95 95 return default
96 96 ui.warn(_('Please enter a valid value.\n'))
97 97
98 98 def cdiffstat(ui, summary, patchlines):
99 99 s = patch.diffstat(patchlines)
100 100 if summary:
101 101 ui.write(summary, '\n')
102 102 ui.write(s, '\n')
103 103 ans = prompt(ui, _('does the diffstat above look okay?'), 'y')
104 104 if not ans.lower().startswith('y'):
105 105 raise util.Abort(_('diffstat rejected'))
106 106 return s
107 107
108 def introneeded(opts, number):
109 '''is an introductory message required?'''
110 return number > 1 or opts.get('intro') or opts.get('desc')
111
108 112 def makepatch(ui, repo, patch, opts, _charsets, idx, total, patchname=None):
109 113
110 114 desc = []
111 115 node = None
112 116 body = ''
113 117
114 118 for line in patch:
115 119 if line.startswith('#'):
116 120 if line.startswith('# Node ID'):
117 121 node = line.split()[-1]
118 122 continue
119 123 if line.startswith('diff -r') or line.startswith('diff --git'):
120 124 break
121 125 desc.append(line)
122 126
123 127 if not patchname and not node:
124 128 raise ValueError
125 129
126 130 if opts.get('attach'):
127 131 body = ('\n'.join(desc[1:]).strip() or
128 132 'Patch subject is complete summary.')
129 133 body += '\n\n\n'
130 134
131 135 if opts.get('plain'):
132 136 while patch and patch[0].startswith('# '):
133 137 patch.pop(0)
134 138 if patch:
135 139 patch.pop(0)
136 140 while patch and not patch[0].strip():
137 141 patch.pop(0)
138 142
139 143 if opts.get('diffstat'):
140 144 body += cdiffstat(ui, '\n'.join(desc), patch) + '\n\n'
141 145
142 146 if opts.get('attach') or opts.get('inline'):
143 147 msg = email.MIMEMultipart.MIMEMultipart()
144 148 if body:
145 149 msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test')))
146 150 p = mail.mimetextpatch('\n'.join(patch), 'x-patch', opts.get('test'))
147 151 binnode = bin(node)
148 152 # if node is mq patch, it will have the patch file's name as a tag
149 153 if not patchname:
150 154 patchtags = [t for t in repo.nodetags(binnode)
151 155 if t.endswith('.patch') or t.endswith('.diff')]
152 156 if patchtags:
153 157 patchname = patchtags[0]
154 158 elif total > 1:
155 159 patchname = cmdutil.make_filename(repo, '%b-%n.patch',
156 160 binnode, seqno=idx, total=total)
157 161 else:
158 162 patchname = cmdutil.make_filename(repo, '%b.patch', binnode)
159 163 disposition = 'inline'
160 164 if opts.get('attach'):
161 165 disposition = 'attachment'
162 166 p['Content-Disposition'] = disposition + '; filename=' + patchname
163 167 msg.attach(p)
164 168 else:
165 169 body += '\n'.join(patch)
166 170 msg = mail.mimetextpatch(body, display=opts.get('test'))
167 171
168 172 flag = ' '.join(opts.get('flag'))
169 173 if flag:
170 174 flag = ' ' + flag
171 175
172 176 subj = desc[0].strip().rstrip('. ')
173 if total == 1 and not opts.get('intro'):
177 if not introneeded(opts, total):
174 178 subj = '[PATCH%s] %s' % (flag, opts.get('subject') or subj)
175 179 else:
176 180 tlen = len(str(total))
177 181 subj = '[PATCH %0*d of %d%s] %s' % (tlen, idx, total, flag, subj)
178 182 msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test'))
179 183 msg['X-Mercurial-Node'] = node
180 184 return msg, subj
181 185
182 186 def patchbomb(ui, repo, *revs, **opts):
183 187 '''send changesets by email
184 188
185 189 By default, diffs are sent in the format generated by hg export,
186 190 one per message. The series starts with a "[PATCH 0 of N]"
187 191 introduction, which describes the series as a whole.
188 192
189 193 Each patch email has a Subject line of "[PATCH M of N] ...", using
190 194 the first line of the changeset description as the subject text.
191 195 The message contains two or three parts. First, the changeset
192 196 description. Next, (optionally) if the diffstat program is
193 197 installed and -d/--diffstat is used, the result of running
194 198 diffstat on the patch. Finally, the patch itself, as generated by
195 199 "hg export".
196 200
197 201 By default the patch is included as text in the email body for
198 202 easy reviewing. Using the -a/--attach option will instead create
199 203 an attachment for the patch. With -i/--inline an inline attachment
200 204 will be created.
201 205
202 206 With -o/--outgoing, emails will be generated for patches not found
203 207 in the destination repository (or only those which are ancestors
204 208 of the specified revisions if any are provided)
205 209
206 210 With -b/--bundle, changesets are selected as for --outgoing, but a
207 211 single email containing a binary Mercurial bundle as an attachment
208 212 will be sent.
209 213
210 214 Examples::
211 215
212 216 hg email -r 3000 # send patch 3000 only
213 217 hg email -r 3000 -r 3001 # send patches 3000 and 3001
214 218 hg email -r 3000:3005 # send patches 3000 through 3005
215 219 hg email 3000 # send patch 3000 (deprecated)
216 220
217 221 hg email -o # send all patches not in default
218 222 hg email -o DEST # send all patches not in DEST
219 223 hg email -o -r 3000 # send all ancestors of 3000 not in default
220 224 hg email -o -r 3000 DEST # send all ancestors of 3000 not in DEST
221 225
222 226 hg email -b # send bundle of all patches not in default
223 227 hg email -b DEST # send bundle of all patches not in DEST
224 228 hg email -b -r 3000 # bundle of all ancestors of 3000 not in default
225 229 hg email -b -r 3000 DEST # bundle of all ancestors of 3000 not in DEST
226 230
227 231 Before using this command, you will need to enable email in your
228 232 hgrc. See the [email] section in hgrc(5) for details.
229 233 '''
230 234
231 235 _charsets = mail._charsets(ui)
232 236
233 237 def outgoing(dest, revs):
234 238 '''Return the revisions present locally but not in dest'''
235 239 dest = ui.expandpath(dest or 'default-push', dest or 'default')
236 240 dest, branches = hg.parseurl(dest)
237 241 revs, checkout = hg.addbranchrevs(repo, repo, branches, revs)
238 242 if revs:
239 243 revs = [repo.lookup(rev) for rev in revs]
240 244 other = hg.repository(cmdutil.remoteui(repo, opts), dest)
241 245 ui.status(_('comparing with %s\n') % dest)
242 246 o = repo.findoutgoing(other)
243 247 if not o:
244 248 ui.status(_("no changes found\n"))
245 249 return []
246 250 o = repo.changelog.nodesbetween(o, revs)[0]
247 251 return [str(repo.changelog.rev(r)) for r in o]
248 252
249 253 def getpatches(revs):
250 254 for r in cmdutil.revrange(repo, revs):
251 255 output = cStringIO.StringIO()
252 256 cmdutil.export(repo, [r], fp=output,
253 257 opts=patch.diffopts(ui, opts))
254 258 yield output.getvalue().split('\n')
255 259
256 260 def getbundle(dest):
257 261 tmpdir = tempfile.mkdtemp(prefix='hg-email-bundle-')
258 262 tmpfn = os.path.join(tmpdir, 'bundle')
259 263 try:
260 264 commands.bundle(ui, repo, tmpfn, dest, **opts)
261 265 return open(tmpfn, 'rb').read()
262 266 finally:
263 267 try:
264 268 os.unlink(tmpfn)
265 269 except:
266 270 pass
267 271 os.rmdir(tmpdir)
268 272
269 273 if not (opts.get('test') or opts.get('mbox')):
270 274 # really sending
271 275 mail.validateconfig(ui)
272 276
273 277 if not (revs or opts.get('rev')
274 278 or opts.get('outgoing') or opts.get('bundle')
275 279 or opts.get('patches')):
276 280 raise util.Abort(_('specify at least one changeset with -r or -o'))
277 281
278 282 if opts.get('outgoing') and opts.get('bundle'):
279 283 raise util.Abort(_("--outgoing mode always on with --bundle;"
280 284 " do not re-specify --outgoing"))
281 285
282 286 if opts.get('outgoing') or opts.get('bundle'):
283 287 if len(revs) > 1:
284 288 raise util.Abort(_("too many destinations"))
285 289 dest = revs and revs[0] or None
286 290 revs = []
287 291
288 292 if opts.get('rev'):
289 293 if revs:
290 294 raise util.Abort(_('use only one form to specify the revision'))
291 295 revs = opts.get('rev')
292 296
293 297 if opts.get('outgoing'):
294 298 revs = outgoing(dest, opts.get('rev'))
295 299 if opts.get('bundle'):
296 300 opts['revs'] = revs
297 301
298 302 # start
299 303 if opts.get('date'):
300 304 start_time = util.parsedate(opts.get('date'))
301 305 else:
302 306 start_time = util.makedate()
303 307
304 308 def genmsgid(id):
305 309 return '<%s.%s@%s>' % (id[:20], int(start_time[0]), socket.getfqdn())
306 310
307 311 def getdescription(body, sender):
308 312 if opts.get('desc'):
309 313 body = open(opts.get('desc')).read()
310 314 else:
311 315 ui.write(_('\nWrite the introductory message for the '
312 316 'patch series.\n\n'))
313 317 body = ui.edit(body, sender)
314 318 return body
315 319
316 320 def getpatchmsgs(patches, patchnames=None):
317 321 jumbo = []
318 322 msgs = []
319 323
320 324 ui.write(_('This patch series consists of %d patches.\n\n')
321 325 % len(patches))
322 326
323 327 name = None
324 328 for i, p in enumerate(patches):
325 329 jumbo.extend(p)
326 330 if patchnames:
327 331 name = patchnames[i]
328 332 msg = makepatch(ui, repo, p, opts, _charsets, i + 1,
329 333 len(patches), name)
330 334 msgs.append(msg)
331 335
332 if len(patches) > 1 or opts.get('intro'):
336 if introneeded(opts, len(patches)):
333 337 tlen = len(str(len(patches)))
334 338
335 339 flag = ' '.join(opts.get('flag'))
336 340 if flag:
337 341 subj = '[PATCH %0*d of %d %s]' % (tlen, 0, len(patches), flag)
338 342 else:
339 343 subj = '[PATCH %0*d of %d]' % (tlen, 0, len(patches))
340 344 subj += ' ' + (opts.get('subject') or
341 345 prompt(ui, 'Subject: ', rest=subj))
342 346
343 347 body = ''
344 348 if opts.get('diffstat'):
345 349 d = cdiffstat(ui, _('Final summary:\n'), jumbo)
346 350 if d:
347 351 body = '\n' + d
348 352
349 353 body = getdescription(body, sender)
350 354 msg = mail.mimeencode(ui, body, _charsets, opts.get('test'))
351 355 msg['Subject'] = mail.headencode(ui, subj, _charsets,
352 356 opts.get('test'))
353 357
354 358 msgs.insert(0, (msg, subj))
355 359 return msgs
356 360
357 361 def getbundlemsgs(bundle):
358 362 subj = (opts.get('subject')
359 363 or prompt(ui, 'Subject:', 'A bundle for your repository'))
360 364
361 365 body = getdescription('', sender)
362 366 msg = email.MIMEMultipart.MIMEMultipart()
363 367 if body:
364 368 msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test')))
365 369 datapart = email.MIMEBase.MIMEBase('application', 'x-mercurial-bundle')
366 370 datapart.set_payload(bundle)
367 371 bundlename = '%s.hg' % opts.get('bundlename', 'bundle')
368 372 datapart.add_header('Content-Disposition', 'attachment',
369 373 filename=bundlename)
370 374 email.Encoders.encode_base64(datapart)
371 375 msg.attach(datapart)
372 376 msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test'))
373 377 return [(msg, subj)]
374 378
375 379 sender = (opts.get('from') or ui.config('email', 'from') or
376 380 ui.config('patchbomb', 'from') or
377 381 prompt(ui, 'From', ui.username()))
378 382
379 383 # internal option used by pbranches
380 384 patches = opts.get('patches')
381 385 if patches:
382 386 msgs = getpatchmsgs(patches, opts.get('patchnames'))
383 387 elif opts.get('bundle'):
384 388 msgs = getbundlemsgs(getbundle(dest))
385 389 else:
386 390 msgs = getpatchmsgs(list(getpatches(revs)))
387 391
388 392 def getaddrs(opt, prpt=None, default=None):
389 393 if opts.get(opt):
390 394 return mail.addrlistencode(ui, opts.get(opt), _charsets,
391 395 opts.get('test'))
392 396
393 397 addrs = (ui.config('email', opt) or
394 398 ui.config('patchbomb', opt) or '')
395 399 if not addrs and prpt:
396 400 addrs = prompt(ui, prpt, default)
397 401
398 402 return mail.addrlistencode(ui, [addrs], _charsets, opts.get('test'))
399 403
400 404 to = getaddrs('to', 'To')
401 405 cc = getaddrs('cc', 'Cc', '')
402 406 bcc = getaddrs('bcc')
403 407
404 408 ui.write('\n')
405 409
406 410 parent = opts.get('in_reply_to') or None
407 411 # angle brackets may be omitted, they're not semantically part of the msg-id
408 412 if parent is not None:
409 413 if not parent.startswith('<'):
410 414 parent = '<' + parent
411 415 if not parent.endswith('>'):
412 416 parent += '>'
413 417
414 418 first = True
415 419
416 420 sender_addr = email.Utils.parseaddr(sender)[1]
417 421 sender = mail.addressencode(ui, sender, _charsets, opts.get('test'))
418 422 sendmail = None
419 423 for m, subj in msgs:
420 424 try:
421 425 m['Message-Id'] = genmsgid(m['X-Mercurial-Node'])
422 426 except TypeError:
423 427 m['Message-Id'] = genmsgid('patchbomb')
424 428 if parent:
425 429 m['In-Reply-To'] = parent
426 430 m['References'] = parent
427 431 if first:
428 432 parent = m['Message-Id']
429 433 first = False
430 434
431 435 m['User-Agent'] = 'Mercurial-patchbomb/%s' % util.version()
432 436 m['Date'] = email.Utils.formatdate(start_time[0], localtime=True)
433 437
434 438 start_time = (start_time[0] + 1, start_time[1])
435 439 m['From'] = sender
436 440 m['To'] = ', '.join(to)
437 441 if cc:
438 442 m['Cc'] = ', '.join(cc)
439 443 if bcc:
440 444 m['Bcc'] = ', '.join(bcc)
441 445 if opts.get('test'):
442 446 ui.status(_('Displaying '), subj, ' ...\n')
443 447 ui.flush()
444 448 if 'PAGER' in os.environ:
445 449 fp = util.popen(os.environ['PAGER'], 'w')
446 450 else:
447 451 fp = ui
448 452 generator = email.Generator.Generator(fp, mangle_from_=False)
449 453 try:
450 454 generator.flatten(m, 0)
451 455 fp.write('\n')
452 456 except IOError, inst:
453 457 if inst.errno != errno.EPIPE:
454 458 raise
455 459 if fp is not ui:
456 460 fp.close()
457 461 elif opts.get('mbox'):
458 462 ui.status(_('Writing '), subj, ' ...\n')
459 463 fp = open(opts.get('mbox'), 'In-Reply-To' in m and 'ab+' or 'wb+')
460 464 generator = email.Generator.Generator(fp, mangle_from_=True)
461 465 # Should be time.asctime(), but Windows prints 2-characters day
462 466 # of month instead of one. Make them print the same thing.
463 467 date = time.strftime('%a %b %d %H:%M:%S %Y',
464 468 time.localtime(start_time[0]))
465 469 fp.write('From %s %s\n' % (sender_addr, date))
466 470 generator.flatten(m, 0)
467 471 fp.write('\n\n')
468 472 fp.close()
469 473 else:
470 474 if not sendmail:
471 475 sendmail = mail.connect(ui)
472 476 ui.status(_('Sending '), subj, ' ...\n')
473 477 # Exim does not remove the Bcc field
474 478 del m['Bcc']
475 479 fp = cStringIO.StringIO()
476 480 generator = email.Generator.Generator(fp, mangle_from_=False)
477 481 generator.flatten(m, 0)
478 482 sendmail(sender, to + bcc + cc, fp.getvalue())
479 483
480 484 emailopts = [
481 485 ('a', 'attach', None, _('send patches as attachments')),
482 486 ('i', 'inline', None, _('send patches as inline attachments')),
483 487 ('', 'bcc', [], _('email addresses of blind carbon copy recipients')),
484 488 ('c', 'cc', [], _('email addresses of copy recipients')),
485 489 ('d', 'diffstat', None, _('add diffstat output to messages')),
486 490 ('', 'date', '', _('use the given date as the sending date')),
487 491 ('', 'desc', '', _('use the given file as the series description')),
488 492 ('f', 'from', '', _('email address of sender')),
489 493 ('n', 'test', None, _('print messages that would be sent')),
490 494 ('m', 'mbox', '',
491 495 _('write messages to mbox file instead of sending them')),
492 496 ('s', 'subject', '',
493 497 _('subject of first message (intro or single patch)')),
494 498 ('', 'in-reply-to', '',
495 499 _('message identifier to reply to')),
496 500 ('', 'flag', [], _('flags to add in subject prefixes')),
497 501 ('t', 'to', [], _('email addresses of recipients')),
498 502 ]
499 503
500 504
501 505 cmdtable = {
502 506 "email":
503 507 (patchbomb,
504 508 [('g', 'git', None, _('use git extended diff format')),
505 509 ('', 'plain', None, _('omit hg patch header')),
506 510 ('o', 'outgoing', None,
507 511 _('send changes not found in the target repository')),
508 512 ('b', 'bundle', None,
509 513 _('send changes not in target as a binary bundle')),
510 514 ('', 'bundlename', 'bundle',
511 515 _('name of the bundle attachment file')),
512 516 ('r', 'rev', [], _('a revision to send')),
513 517 ('', 'force', None,
514 518 _('run even when remote repository is unrelated '
515 519 '(with -b/--bundle)')),
516 520 ('', 'base', [],
517 521 _('a base changeset to specify instead of a destination '
518 522 '(with -b/--bundle)')),
519 523 ('', 'intro', None,
520 524 _('send an introduction email for a single patch')),
521 525 ] + emailopts + commands.remoteopts,
522 526 _('hg email [OPTION]... [DEST]...'))
523 527 }
@@ -1,195 +1,200
1 1 #!/bin/sh
2 2
3 3 fixheaders()
4 4 {
5 5 sed -e 's/\(Message-Id:.*@\).*/\1/' \
6 6 -e 's/\(In-Reply-To:.*@\).*/\1/' \
7 7 -e 's/\(References:.*@\).*/\1/' \
8 8 -e 's/\(User-Agent:.*\)\/.*/\1/' \
9 9 -e 's/===.*/===/'
10 10 }
11 11
12 12 echo "[extensions]" >> $HGRCPATH
13 13 echo "patchbomb=" >> $HGRCPATH
14 14
15 15 hg init t
16 16 cd t
17 17 echo a > a
18 18 hg commit -Ama -d '1 0'
19 19
20 20 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -r tip | \
21 21 fixheaders
22 22
23 23 echo b > b
24 24 hg commit -Amb -d '2 0'
25 25
26 26 hg email --date '1970-1-1 0:2' -n -f quux -t foo -c bar -s test -r 0:tip | \
27 27 fixheaders
28 28
29 29 hg email -m test.mbox -f quux -t foo -c bar -s test 0:tip
30 30
31 31 cd ..
32 32
33 33 hg clone -q t t2
34 34 cd t2
35 35 echo c > c
36 36 hg commit -Amc -d '3 0'
37 37
38 38 cat > description <<EOF
39 39 a multiline
40 40
41 41 description
42 42 EOF
43 43
44 44 echo "% test bundle and description"
45 45 hg email --date '1970-1-1 0:3' -n -f quux -t foo \
46 46 -c bar -s test -r tip -b --desc description | \
47 47 fixheaders
48 48
49 49 echo "% utf-8 patch"
50 50 python -c 'fp = open("utf", "wb"); fp.write("h\xC3\xB6mma!\n"); fp.close();'
51 51 hg commit -A -d '4 0' -m 'charset=utf-8; content-transfer-encoding: base64'
52 52
53 53 echo "% no mime encoding for email --test"
54 54 hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n | \
55 55 fixheaders > mailtest
56 56 echo "% md5sum of 8-bit output"
57 57 $TESTDIR/md5sum.py mailtest
58 58 rm mailtest
59 59
60 60 echo "% mime encoded mbox (base64)"
61 61 hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -m mbox
62 62 cat mbox | fixheaders
63 63 rm mbox
64 64
65 65 echo "% mime encoded mbox (quoted-printable)"
66 66 python -c 'fp = open("qp", "wb"); fp.write("%s\nfoo\n\nbar\n" % \
67 67 ("x" * 1024)); fp.close();'
68 68 hg commit -A -d '4 0' -m \
69 69 'charset=utf-8; content-transfer-encoding: quoted-printable'
70 70
71 71 echo "% no mime encoding for email --test"
72 72 hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n | \
73 73 fixheaders > mailtest
74 74 echo "% md5sum of qp output"
75 75 $TESTDIR/md5sum.py mailtest
76 76 rm mailtest
77 77
78 78 echo "% mime encoded mbox (quoted-printable)"
79 79 hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -m mbox
80 80 cat mbox | fixheaders
81 81 rm mbox
82 82
83 83 echo "% iso-8859-1 patch"
84 84 python -c 'fp = open("isolatin", "wb"); fp.write("h\xF6mma!\n"); fp.close();'
85 85 hg commit -A -d '5 0' -m 'charset=us-ascii; content-transfer-encoding: 8bit'
86 86
87 87 echo "% fake ascii mbox"
88 88 hg email --date '1970-1-1 0:5' -f quux -t foo -c bar -r tip -m mbox
89 89 fixheaders < mbox > mboxfix
90 90 echo "% md5sum of 8-bit output"
91 91 $TESTDIR/md5sum.py mboxfix
92 92
93 93 echo "% test diffstat for single patch"
94 94 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y -r 2 | \
95 95 fixheaders
96 96
97 97 echo "% test diffstat for multiple patches"
98 98 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y \
99 99 -r 0:1 | fixheaders
100 100
101 101 echo "% test inline for single patch"
102 102 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 2 | \
103 103 fixheaders
104 104
105 105 echo "% test inline for single patch (quoted-printable)"
106 106 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 4 | \
107 107 fixheaders
108 108
109 109 echo "% test inline for multiple patches"
110 110 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i \
111 111 -r 0:1 -r 4 | fixheaders
112 112
113 113 echo "% test attach for single patch"
114 114 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a -r 2 | \
115 115 fixheaders
116 116
117 117 echo "% test attach for single patch (quoted-printable)"
118 118 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a -r 4 | \
119 119 fixheaders
120 120
121 121 echo "% test attach for multiple patches"
122 122 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a \
123 123 -r 0:1 -r 4 | fixheaders
124 124
125 125 echo "% test intro for single patch"
126 126 hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test \
127 127 -r 2 | fixheaders
128 128
129 echo "% test --desc without --intro for a single patch"
130 echo foo > intro.text
131 hg email --date '1970-1-1 0:1' -n --desc intro.text -f quux -t foo -c bar \
132 -s test -r 2 | fixheaders
133
129 134 echo "% test intro for multiple patches"
130 135 hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test \
131 136 -r 0:1 | fixheaders
132 137
133 138 echo "% tagging csets"
134 139 hg tag -r0 zero zero.foo
135 140 hg tag -r1 one one.patch
136 141 hg tag -r2 two two.diff
137 142
138 143 echo "% test inline for single named patch"
139 144 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 2 | \
140 145 fixheaders
141 146
142 147 echo "% test inline for multiple named/unnamed patches"
143 148 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 0:1 | \
144 149 fixheaders
145 150
146 151 echo "% test inreplyto"
147 152 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
148 153 -r tip | fixheaders
149 154
150 155 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
151 156 -r 0:1 | fixheaders
152 157
153 158 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
154 159 -s test -r 0:1 | fixheaders
155 160
156 161 echo "% test single flag for single patch"
157 162 hg email --date '1970-1-1 0:1' -n --flag fooFlag -f quux -t foo -c bar -s test \
158 163 -r 2 | fixheaders
159 164
160 165 echo "% test single flag for multiple patches"
161 166 hg email --date '1970-1-1 0:1' -n --flag fooFlag -f quux -t foo -c bar -s test \
162 167 -r 0:1 | fixheaders
163 168
164 169 echo "% test mutiple flags for single patch"
165 170 hg email --date '1970-1-1 0:1' -n --flag fooFlag --flag barFlag -f quux -t foo \
166 171 -c bar -s test -r 2 | fixheaders
167 172
168 173 echo "% test multiple flags for multiple patches"
169 174 hg email --date '1970-1-1 0:1' -n --flag fooFlag --flag barFlag -f quux -t foo \
170 175 -c bar -s test -r 0:1 | fixheaders
171 176
172 177 echo "% test multi-address parsing"
173 178 hg email --date '1980-1-1 0:1' -m tmp.mbox -f quux -t 'spam<spam><eggs>' \
174 179 -t toast -c 'foo,bar@example.com' -c '"A, B <>" <a@example.com>' -s test -r 0 \
175 180 --config email.bcc='"Quux, A." <quux>'
176 181 cat tmp.mbox | fixheaders
177 182
178 183 echo "% test multi-byte domain parsing"
179 184 UUML=`python -c 'import sys; sys.stdout.write("\374")'`
180 185 HGENCODING=iso-8859-1
181 186 export HGENCODING
182 187 hg email --date '1980-1-1 0:1' -m tmp.mbox -f quux -t "bar@${UUML}nicode.com" \
183 188 -s test -r 0
184 189 cat tmp.mbox | fixheaders
185 190
186 191 echo "% test outgoing"
187 192 hg up 1
188 193 hg branch test
189 194 echo d > d
190 195 hg add d
191 196 hg ci -md -d '4 0'
192 197 hg email --date '1980-1-1 0:1' -n -t foo -s test -o ../t | fixheaders
193 198
194 199 echo "% dest#branch URIs"
195 200 hg email --date '1980-1-1 0:1' -n -t foo -s test -o ../t#test | fixheaders
@@ -1,1840 +1,1886
1 1 adding a
2 2 This patch series consists of 1 patches.
3 3
4 4
5 5 Displaying [PATCH] a ...
6 6 Content-Type: text/plain; charset="us-ascii"
7 7 MIME-Version: 1.0
8 8 Content-Transfer-Encoding: 7bit
9 9 Subject: [PATCH] a
10 10 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
11 11 Message-Id: <8580ff50825a50c8f716.60@
12 12 User-Agent: Mercurial-patchbomb
13 13 Date: Thu, 01 Jan 1970 00:01:00 +0000
14 14 From: quux
15 15 To: foo
16 16 Cc: bar
17 17
18 18 # HG changeset patch
19 19 # User test
20 20 # Date 1 0
21 21 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
22 22 # Parent 0000000000000000000000000000000000000000
23 23 a
24 24
25 25 diff -r 000000000000 -r 8580ff50825a a
26 26 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
27 27 +++ b/a Thu Jan 01 00:00:01 1970 +0000
28 28 @@ -0,0 +1,1 @@
29 29 +a
30 30
31 31 adding b
32 32 This patch series consists of 2 patches.
33 33
34 34
35 35 Write the introductory message for the patch series.
36 36
37 37
38 38 Displaying [PATCH 0 of 2] test ...
39 39 Content-Type: text/plain; charset="us-ascii"
40 40 MIME-Version: 1.0
41 41 Content-Transfer-Encoding: 7bit
42 42 Subject: [PATCH 0 of 2] test
43 43 Message-Id: <patchbomb.120@
44 44 User-Agent: Mercurial-patchbomb
45 45 Date: Thu, 01 Jan 1970 00:02:00 +0000
46 46 From: quux
47 47 To: foo
48 48 Cc: bar
49 49
50 50
51 51 Displaying [PATCH 1 of 2] a ...
52 52 Content-Type: text/plain; charset="us-ascii"
53 53 MIME-Version: 1.0
54 54 Content-Transfer-Encoding: 7bit
55 55 Subject: [PATCH 1 of 2] a
56 56 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
57 57 Message-Id: <8580ff50825a50c8f716.121@
58 58 In-Reply-To: <patchbomb.120@
59 59 References: <patchbomb.120@
60 60 User-Agent: Mercurial-patchbomb
61 61 Date: Thu, 01 Jan 1970 00:02:01 +0000
62 62 From: quux
63 63 To: foo
64 64 Cc: bar
65 65
66 66 # HG changeset patch
67 67 # User test
68 68 # Date 1 0
69 69 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
70 70 # Parent 0000000000000000000000000000000000000000
71 71 a
72 72
73 73 diff -r 000000000000 -r 8580ff50825a a
74 74 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
75 75 +++ b/a Thu Jan 01 00:00:01 1970 +0000
76 76 @@ -0,0 +1,1 @@
77 77 +a
78 78
79 79 Displaying [PATCH 2 of 2] b ...
80 80 Content-Type: text/plain; charset="us-ascii"
81 81 MIME-Version: 1.0
82 82 Content-Transfer-Encoding: 7bit
83 83 Subject: [PATCH 2 of 2] b
84 84 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
85 85 Message-Id: <97d72e5f12c7e84f8506.122@
86 86 In-Reply-To: <patchbomb.120@
87 87 References: <patchbomb.120@
88 88 User-Agent: Mercurial-patchbomb
89 89 Date: Thu, 01 Jan 1970 00:02:02 +0000
90 90 From: quux
91 91 To: foo
92 92 Cc: bar
93 93
94 94 # HG changeset patch
95 95 # User test
96 96 # Date 2 0
97 97 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
98 98 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
99 99 b
100 100
101 101 diff -r 8580ff50825a -r 97d72e5f12c7 b
102 102 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
103 103 +++ b/b Thu Jan 01 00:00:02 1970 +0000
104 104 @@ -0,0 +1,1 @@
105 105 +b
106 106
107 107 This patch series consists of 2 patches.
108 108
109 109
110 110 Write the introductory message for the patch series.
111 111
112 112
113 113 Writing [PATCH 0 of 2] test ...
114 114 Writing [PATCH 1 of 2] a ...
115 115 Writing [PATCH 2 of 2] b ...
116 116 adding c
117 117 % test bundle and description
118 118 searching for changes
119 119 1 changesets found
120 120
121 121 Displaying test ...
122 122 Content-Type: multipart/mixed; boundary="===
123 123 MIME-Version: 1.0
124 124 Subject: test
125 125 Message-Id: <patchbomb.180@
126 126 User-Agent: Mercurial-patchbomb
127 127 Date: Thu, 01 Jan 1970 00:03:00 +0000
128 128 From: quux
129 129 To: foo
130 130 Cc: bar
131 131
132 132 --===
133 133 Content-Type: text/plain; charset="us-ascii"
134 134 MIME-Version: 1.0
135 135 Content-Transfer-Encoding: 7bit
136 136
137 137 a multiline
138 138
139 139 description
140 140
141 141 --===
142 142 Content-Type: application/x-mercurial-bundle
143 143 MIME-Version: 1.0
144 144 Content-Disposition: attachment; filename="bundle.hg"
145 145 Content-Transfer-Encoding: base64
146 146
147 147 SEcxMEJaaDkxQVkmU1nvR7I3AAAN////lFYQWj1/4HwRkdC/AywIAk0E4pfoSIIIgQCgGEQOcLAA
148 148 2tA1VPyp4mkeoG0EaaPU0GTT1GjRiNPIg9CZGBqZ6UbU9J+KFU09DNUaGgAAAAAANAGgAAAAA1U8
149 149 oGgAADQGgAANNANAAAAAAZipFLz3XoakCEQB3PVPyHJVi1iYkAAKQAZQGpQGZESInRnCFMqLDla2
150 150 Bx3qfRQeA2N4lnzKkAmP8kR2asievLLXXebVU8Vg4iEBqcJNJAxIapSU6SM4888ZAciRG6MYAIEE
151 151 SlIBpFisgGkyRjX//TMtfcUAEsGu56+YnE1OlTZmzKm8BSu2rvo4rHAYYaadIFFuTy0LYgIkgLVD
152 152 sgVa2F19D1tx9+hgbAygLgQwaIqcDdgA4BjQgIiz/AEP72++llgDKhKducqodGE4B0ETqF3JFOFC
153 153 Q70eyNw=
154 154 --===
155 155 % utf-8 patch
156 156 adding description
157 157 adding utf
158 158 % no mime encoding for email --test
159 159 % md5sum of 8-bit output
160 160 e726c29b3008e77994c7572563e57c34 mailtest
161 161 % mime encoded mbox (base64)
162 162 This patch series consists of 1 patches.
163 163
164 164
165 165 Writing [PATCH] charset=utf-8; content-transfer-encoding: base64 ...
166 166 From quux Thu Jan 01 00:04:01 1970
167 167 Content-Type: text/plain; charset="utf-8"
168 168 MIME-Version: 1.0
169 169 Content-Transfer-Encoding: base64
170 170 Subject: [PATCH] charset=utf-8; content-transfer-encoding: base64
171 171 X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
172 172 Message-Id: <c3c9e37db9f4fe4882cd.240@
173 173 User-Agent: Mercurial-patchbomb
174 174 Date: Thu, 01 Jan 1970 00:04:00 +0000
175 175 From: quux
176 176 To: foo
177 177 Cc: bar
178 178
179 179 IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIHRlc3QKIyBEYXRlIDQgMAojIE5vZGUgSUQgYzNj
180 180 OWUzN2RiOWY0ZmU0ODgyY2RhMzliYWY0MmZlZDZiYWQ4YjE1YQojIFBhcmVudCAgZmYyYzlmYTIw
181 181 MThiMTVmYTc0YjMzMzYzYmRhOTUyNzMyM2UyYTk5ZgpjaGFyc2V0PXV0Zi04OyBjb250ZW50LXRy
182 182 YW5zZmVyLWVuY29kaW5nOiBiYXNlNjQKCmRpZmYgLXIgZmYyYzlmYTIwMThiIC1yIGMzYzllMzdk
183 183 YjlmNCBkZXNjcmlwdGlvbgotLS0gL2Rldi9udWxsCVRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCAr
184 184 MDAwMAorKysgYi9kZXNjcmlwdGlvbglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg
185 185 LTAsMCArMSwzIEBACithIG11bHRpbGluZQorCitkZXNjcmlwdGlvbgpkaWZmIC1yIGZmMmM5ZmEy
186 186 MDE4YiAtciBjM2M5ZTM3ZGI5ZjQgdXRmCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDow
187 187 MCAxOTcwICswMDAwCisrKyBiL3V0ZglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg
188 188 LTAsMCArMSwxIEBACitow7ZtbWEhCg==
189 189
190 190
191 191 % mime encoded mbox (quoted-printable)
192 192 adding qp
193 193 % no mime encoding for email --test
194 194 % md5sum of qp output
195 195 0402c7d033e04044e423bb04816f9dae mailtest
196 196 % mime encoded mbox (quoted-printable)
197 197 This patch series consists of 1 patches.
198 198
199 199
200 200 Writing [PATCH] charset=utf-8; content-transfer-encoding: quoted-printable ...
201 201 From quux Thu Jan 01 00:04:01 1970
202 202 Content-Type: text/plain; charset="us-ascii"
203 203 MIME-Version: 1.0
204 204 Content-Transfer-Encoding: quoted-printable
205 205 Subject: [PATCH] charset=utf-8; content-transfer-encoding: quoted-printable
206 206 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
207 207 Message-Id: <c655633f8c87700bb38c.240@
208 208 User-Agent: Mercurial-patchbomb
209 209 Date: Thu, 01 Jan 1970 00:04:00 +0000
210 210 From: quux
211 211 To: foo
212 212 Cc: bar
213 213
214 214 # HG changeset patch
215 215 # User test
216 216 # Date 4 0
217 217 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
218 218 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
219 219 charset=3Dutf-8; content-transfer-encoding: quoted-printable
220 220
221 221 diff -r c3c9e37db9f4 -r c655633f8c87 qp
222 222 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
223 223 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
224 224 @@ -0,0 +1,4 @@
225 225 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
226 226 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
227 227 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
228 228 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
229 229 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
230 230 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
231 231 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
232 232 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
233 233 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
234 234 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
235 235 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
236 236 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
237 237 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
238 238 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
239 239 +foo
240 240 +
241 241 +bar
242 242
243 243
244 244 % iso-8859-1 patch
245 245 adding isolatin
246 246 % fake ascii mbox
247 247 This patch series consists of 1 patches.
248 248
249 249
250 250 Writing [PATCH] charset=us-ascii; content-transfer-encoding: 8bit ...
251 251 % md5sum of 8-bit output
252 252 9ea043d8fc43a71045114508baed144b mboxfix
253 253 % test diffstat for single patch
254 254 This patch series consists of 1 patches.
255 255
256 256 c
257 257
258 258 c | 1 +
259 259 1 files changed, 1 insertions(+), 0 deletions(-)
260 260
261 261
262 262 Displaying [PATCH] test ...
263 263 Content-Type: text/plain; charset="us-ascii"
264 264 MIME-Version: 1.0
265 265 Content-Transfer-Encoding: 7bit
266 266 Subject: [PATCH] test
267 267 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
268 268 Message-Id: <ff2c9fa2018b15fa74b3.60@
269 269 User-Agent: Mercurial-patchbomb
270 270 Date: Thu, 01 Jan 1970 00:01:00 +0000
271 271 From: quux
272 272 To: foo
273 273 Cc: bar
274 274
275 275 c | 1 +
276 276 1 files changed, 1 insertions(+), 0 deletions(-)
277 277
278 278
279 279 # HG changeset patch
280 280 # User test
281 281 # Date 3 0
282 282 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
283 283 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
284 284 c
285 285
286 286 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
287 287 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
288 288 +++ b/c Thu Jan 01 00:00:03 1970 +0000
289 289 @@ -0,0 +1,1 @@
290 290 +c
291 291
292 292 % test diffstat for multiple patches
293 293 This patch series consists of 2 patches.
294 294
295 295 a
296 296
297 297 a | 1 +
298 298 1 files changed, 1 insertions(+), 0 deletions(-)
299 299
300 300 b
301 301
302 302 b | 1 +
303 303 1 files changed, 1 insertions(+), 0 deletions(-)
304 304
305 305 Final summary:
306 306
307 307 a | 1 +
308 308 b | 1 +
309 309 2 files changed, 2 insertions(+), 0 deletions(-)
310 310
311 311
312 312 Write the introductory message for the patch series.
313 313
314 314
315 315 Displaying [PATCH 0 of 2] test ...
316 316 Content-Type: text/plain; charset="us-ascii"
317 317 MIME-Version: 1.0
318 318 Content-Transfer-Encoding: 7bit
319 319 Subject: [PATCH 0 of 2] test
320 320 Message-Id: <patchbomb.60@
321 321 User-Agent: Mercurial-patchbomb
322 322 Date: Thu, 01 Jan 1970 00:01:00 +0000
323 323 From: quux
324 324 To: foo
325 325 Cc: bar
326 326
327 327
328 328 a | 1 +
329 329 b | 1 +
330 330 2 files changed, 2 insertions(+), 0 deletions(-)
331 331
332 332 Displaying [PATCH 1 of 2] a ...
333 333 Content-Type: text/plain; charset="us-ascii"
334 334 MIME-Version: 1.0
335 335 Content-Transfer-Encoding: 7bit
336 336 Subject: [PATCH 1 of 2] a
337 337 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
338 338 Message-Id: <8580ff50825a50c8f716.61@
339 339 In-Reply-To: <patchbomb.60@
340 340 References: <patchbomb.60@
341 341 User-Agent: Mercurial-patchbomb
342 342 Date: Thu, 01 Jan 1970 00:01:01 +0000
343 343 From: quux
344 344 To: foo
345 345 Cc: bar
346 346
347 347 a | 1 +
348 348 1 files changed, 1 insertions(+), 0 deletions(-)
349 349
350 350
351 351 # HG changeset patch
352 352 # User test
353 353 # Date 1 0
354 354 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
355 355 # Parent 0000000000000000000000000000000000000000
356 356 a
357 357
358 358 diff -r 000000000000 -r 8580ff50825a a
359 359 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
360 360 +++ b/a Thu Jan 01 00:00:01 1970 +0000
361 361 @@ -0,0 +1,1 @@
362 362 +a
363 363
364 364 Displaying [PATCH 2 of 2] b ...
365 365 Content-Type: text/plain; charset="us-ascii"
366 366 MIME-Version: 1.0
367 367 Content-Transfer-Encoding: 7bit
368 368 Subject: [PATCH 2 of 2] b
369 369 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
370 370 Message-Id: <97d72e5f12c7e84f8506.62@
371 371 In-Reply-To: <patchbomb.60@
372 372 References: <patchbomb.60@
373 373 User-Agent: Mercurial-patchbomb
374 374 Date: Thu, 01 Jan 1970 00:01:02 +0000
375 375 From: quux
376 376 To: foo
377 377 Cc: bar
378 378
379 379 b | 1 +
380 380 1 files changed, 1 insertions(+), 0 deletions(-)
381 381
382 382
383 383 # HG changeset patch
384 384 # User test
385 385 # Date 2 0
386 386 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
387 387 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
388 388 b
389 389
390 390 diff -r 8580ff50825a -r 97d72e5f12c7 b
391 391 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
392 392 +++ b/b Thu Jan 01 00:00:02 1970 +0000
393 393 @@ -0,0 +1,1 @@
394 394 +b
395 395
396 396 % test inline for single patch
397 397 This patch series consists of 1 patches.
398 398
399 399
400 400 Displaying [PATCH] test ...
401 401 Content-Type: multipart/mixed; boundary="===
402 402 MIME-Version: 1.0
403 403 Subject: [PATCH] test
404 404 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
405 405 Message-Id: <ff2c9fa2018b15fa74b3.60@
406 406 User-Agent: Mercurial-patchbomb
407 407 Date: Thu, 01 Jan 1970 00:01:00 +0000
408 408 From: quux
409 409 To: foo
410 410 Cc: bar
411 411
412 412 --===
413 413 Content-Type: text/x-patch; charset="us-ascii"
414 414 MIME-Version: 1.0
415 415 Content-Transfer-Encoding: 7bit
416 416 Content-Disposition: inline; filename=t2.patch
417 417
418 418 # HG changeset patch
419 419 # User test
420 420 # Date 3 0
421 421 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
422 422 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
423 423 c
424 424
425 425 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
426 426 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
427 427 +++ b/c Thu Jan 01 00:00:03 1970 +0000
428 428 @@ -0,0 +1,1 @@
429 429 +c
430 430
431 431 --===
432 432 % test inline for single patch (quoted-printable)
433 433 This patch series consists of 1 patches.
434 434
435 435
436 436 Displaying [PATCH] test ...
437 437 Content-Type: multipart/mixed; boundary="===
438 438 MIME-Version: 1.0
439 439 Subject: [PATCH] test
440 440 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
441 441 Message-Id: <c655633f8c87700bb38c.60@
442 442 User-Agent: Mercurial-patchbomb
443 443 Date: Thu, 01 Jan 1970 00:01:00 +0000
444 444 From: quux
445 445 To: foo
446 446 Cc: bar
447 447
448 448 --===
449 449 Content-Type: text/x-patch; charset="us-ascii"
450 450 MIME-Version: 1.0
451 451 Content-Transfer-Encoding: quoted-printable
452 452 Content-Disposition: inline; filename=t2.patch
453 453
454 454 # HG changeset patch
455 455 # User test
456 456 # Date 4 0
457 457 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
458 458 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
459 459 charset=3Dutf-8; content-transfer-encoding: quoted-printable
460 460
461 461 diff -r c3c9e37db9f4 -r c655633f8c87 qp
462 462 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
463 463 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
464 464 @@ -0,0 +1,4 @@
465 465 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
466 466 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
467 467 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
468 468 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
469 469 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
470 470 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
471 471 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
472 472 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
473 473 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
474 474 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
475 475 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
476 476 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
477 477 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
478 478 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
479 479 +foo
480 480 +
481 481 +bar
482 482
483 483 --===
484 484 % test inline for multiple patches
485 485 This patch series consists of 3 patches.
486 486
487 487
488 488 Write the introductory message for the patch series.
489 489
490 490
491 491 Displaying [PATCH 0 of 3] test ...
492 492 Content-Type: text/plain; charset="us-ascii"
493 493 MIME-Version: 1.0
494 494 Content-Transfer-Encoding: 7bit
495 495 Subject: [PATCH 0 of 3] test
496 496 Message-Id: <patchbomb.60@
497 497 User-Agent: Mercurial-patchbomb
498 498 Date: Thu, 01 Jan 1970 00:01:00 +0000
499 499 From: quux
500 500 To: foo
501 501 Cc: bar
502 502
503 503
504 504 Displaying [PATCH 1 of 3] a ...
505 505 Content-Type: multipart/mixed; boundary="===
506 506 MIME-Version: 1.0
507 507 Subject: [PATCH 1 of 3] a
508 508 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
509 509 Message-Id: <8580ff50825a50c8f716.61@
510 510 In-Reply-To: <patchbomb.60@
511 511 References: <patchbomb.60@
512 512 User-Agent: Mercurial-patchbomb
513 513 Date: Thu, 01 Jan 1970 00:01:01 +0000
514 514 From: quux
515 515 To: foo
516 516 Cc: bar
517 517
518 518 --===
519 519 Content-Type: text/x-patch; charset="us-ascii"
520 520 MIME-Version: 1.0
521 521 Content-Transfer-Encoding: 7bit
522 522 Content-Disposition: inline; filename=t2-1.patch
523 523
524 524 # HG changeset patch
525 525 # User test
526 526 # Date 1 0
527 527 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
528 528 # Parent 0000000000000000000000000000000000000000
529 529 a
530 530
531 531 diff -r 000000000000 -r 8580ff50825a a
532 532 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
533 533 +++ b/a Thu Jan 01 00:00:01 1970 +0000
534 534 @@ -0,0 +1,1 @@
535 535 +a
536 536
537 537 --===
538 538 Displaying [PATCH 2 of 3] b ...
539 539 Content-Type: multipart/mixed; boundary="===
540 540 MIME-Version: 1.0
541 541 Subject: [PATCH 2 of 3] b
542 542 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
543 543 Message-Id: <97d72e5f12c7e84f8506.62@
544 544 In-Reply-To: <patchbomb.60@
545 545 References: <patchbomb.60@
546 546 User-Agent: Mercurial-patchbomb
547 547 Date: Thu, 01 Jan 1970 00:01:02 +0000
548 548 From: quux
549 549 To: foo
550 550 Cc: bar
551 551
552 552 --===
553 553 Content-Type: text/x-patch; charset="us-ascii"
554 554 MIME-Version: 1.0
555 555 Content-Transfer-Encoding: 7bit
556 556 Content-Disposition: inline; filename=t2-2.patch
557 557
558 558 # HG changeset patch
559 559 # User test
560 560 # Date 2 0
561 561 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
562 562 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
563 563 b
564 564
565 565 diff -r 8580ff50825a -r 97d72e5f12c7 b
566 566 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
567 567 +++ b/b Thu Jan 01 00:00:02 1970 +0000
568 568 @@ -0,0 +1,1 @@
569 569 +b
570 570
571 571 --===
572 572 Displaying [PATCH 3 of 3] charset=utf-8; content-transfer-encoding: quoted-printable ...
573 573 Content-Type: multipart/mixed; boundary="===
574 574 MIME-Version: 1.0
575 575 Subject: [PATCH 3 of 3] charset=utf-8;
576 576 content-transfer-encoding: quoted-printable
577 577 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
578 578 Message-Id: <c655633f8c87700bb38c.63@
579 579 In-Reply-To: <patchbomb.60@
580 580 References: <patchbomb.60@
581 581 User-Agent: Mercurial-patchbomb
582 582 Date: Thu, 01 Jan 1970 00:01:03 +0000
583 583 From: quux
584 584 To: foo
585 585 Cc: bar
586 586
587 587 --===
588 588 Content-Type: text/x-patch; charset="us-ascii"
589 589 MIME-Version: 1.0
590 590 Content-Transfer-Encoding: quoted-printable
591 591 Content-Disposition: inline; filename=t2-3.patch
592 592
593 593 # HG changeset patch
594 594 # User test
595 595 # Date 4 0
596 596 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
597 597 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
598 598 charset=3Dutf-8; content-transfer-encoding: quoted-printable
599 599
600 600 diff -r c3c9e37db9f4 -r c655633f8c87 qp
601 601 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
602 602 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
603 603 @@ -0,0 +1,4 @@
604 604 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
605 605 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
606 606 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
607 607 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
608 608 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
609 609 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
610 610 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
611 611 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
612 612 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
613 613 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
614 614 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
615 615 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
616 616 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
617 617 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
618 618 +foo
619 619 +
620 620 +bar
621 621
622 622 --===
623 623 % test attach for single patch
624 624 This patch series consists of 1 patches.
625 625
626 626
627 627 Displaying [PATCH] test ...
628 628 Content-Type: multipart/mixed; boundary="===
629 629 MIME-Version: 1.0
630 630 Subject: [PATCH] test
631 631 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
632 632 Message-Id: <ff2c9fa2018b15fa74b3.60@
633 633 User-Agent: Mercurial-patchbomb
634 634 Date: Thu, 01 Jan 1970 00:01:00 +0000
635 635 From: quux
636 636 To: foo
637 637 Cc: bar
638 638
639 639 --===
640 640 Content-Type: text/plain; charset="us-ascii"
641 641 MIME-Version: 1.0
642 642 Content-Transfer-Encoding: 7bit
643 643
644 644 Patch subject is complete summary.
645 645
646 646
647 647
648 648 --===
649 649 Content-Type: text/x-patch; charset="us-ascii"
650 650 MIME-Version: 1.0
651 651 Content-Transfer-Encoding: 7bit
652 652 Content-Disposition: attachment; filename=t2.patch
653 653
654 654 # HG changeset patch
655 655 # User test
656 656 # Date 3 0
657 657 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
658 658 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
659 659 c
660 660
661 661 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
662 662 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
663 663 +++ b/c Thu Jan 01 00:00:03 1970 +0000
664 664 @@ -0,0 +1,1 @@
665 665 +c
666 666
667 667 --===
668 668 % test attach for single patch (quoted-printable)
669 669 This patch series consists of 1 patches.
670 670
671 671
672 672 Displaying [PATCH] test ...
673 673 Content-Type: multipart/mixed; boundary="===
674 674 MIME-Version: 1.0
675 675 Subject: [PATCH] test
676 676 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
677 677 Message-Id: <c655633f8c87700bb38c.60@
678 678 User-Agent: Mercurial-patchbomb
679 679 Date: Thu, 01 Jan 1970 00:01:00 +0000
680 680 From: quux
681 681 To: foo
682 682 Cc: bar
683 683
684 684 --===
685 685 Content-Type: text/plain; charset="us-ascii"
686 686 MIME-Version: 1.0
687 687 Content-Transfer-Encoding: 7bit
688 688
689 689 Patch subject is complete summary.
690 690
691 691
692 692
693 693 --===
694 694 Content-Type: text/x-patch; charset="us-ascii"
695 695 MIME-Version: 1.0
696 696 Content-Transfer-Encoding: quoted-printable
697 697 Content-Disposition: attachment; filename=t2.patch
698 698
699 699 # HG changeset patch
700 700 # User test
701 701 # Date 4 0
702 702 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
703 703 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
704 704 charset=3Dutf-8; content-transfer-encoding: quoted-printable
705 705
706 706 diff -r c3c9e37db9f4 -r c655633f8c87 qp
707 707 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
708 708 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
709 709 @@ -0,0 +1,4 @@
710 710 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
711 711 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
712 712 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
713 713 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
714 714 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
715 715 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
716 716 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
717 717 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
718 718 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
719 719 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
720 720 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
721 721 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
722 722 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
723 723 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
724 724 +foo
725 725 +
726 726 +bar
727 727
728 728 --===
729 729 % test attach for multiple patches
730 730 This patch series consists of 3 patches.
731 731
732 732
733 733 Write the introductory message for the patch series.
734 734
735 735
736 736 Displaying [PATCH 0 of 3] test ...
737 737 Content-Type: text/plain; charset="us-ascii"
738 738 MIME-Version: 1.0
739 739 Content-Transfer-Encoding: 7bit
740 740 Subject: [PATCH 0 of 3] test
741 741 Message-Id: <patchbomb.60@
742 742 User-Agent: Mercurial-patchbomb
743 743 Date: Thu, 01 Jan 1970 00:01:00 +0000
744 744 From: quux
745 745 To: foo
746 746 Cc: bar
747 747
748 748
749 749 Displaying [PATCH 1 of 3] a ...
750 750 Content-Type: multipart/mixed; boundary="===
751 751 MIME-Version: 1.0
752 752 Subject: [PATCH 1 of 3] a
753 753 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
754 754 Message-Id: <8580ff50825a50c8f716.61@
755 755 In-Reply-To: <patchbomb.60@
756 756 References: <patchbomb.60@
757 757 User-Agent: Mercurial-patchbomb
758 758 Date: Thu, 01 Jan 1970 00:01:01 +0000
759 759 From: quux
760 760 To: foo
761 761 Cc: bar
762 762
763 763 --===
764 764 Content-Type: text/plain; charset="us-ascii"
765 765 MIME-Version: 1.0
766 766 Content-Transfer-Encoding: 7bit
767 767
768 768 Patch subject is complete summary.
769 769
770 770
771 771
772 772 --===
773 773 Content-Type: text/x-patch; charset="us-ascii"
774 774 MIME-Version: 1.0
775 775 Content-Transfer-Encoding: 7bit
776 776 Content-Disposition: attachment; filename=t2-1.patch
777 777
778 778 # HG changeset patch
779 779 # User test
780 780 # Date 1 0
781 781 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
782 782 # Parent 0000000000000000000000000000000000000000
783 783 a
784 784
785 785 diff -r 000000000000 -r 8580ff50825a a
786 786 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
787 787 +++ b/a Thu Jan 01 00:00:01 1970 +0000
788 788 @@ -0,0 +1,1 @@
789 789 +a
790 790
791 791 --===
792 792 Displaying [PATCH 2 of 3] b ...
793 793 Content-Type: multipart/mixed; boundary="===
794 794 MIME-Version: 1.0
795 795 Subject: [PATCH 2 of 3] b
796 796 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
797 797 Message-Id: <97d72e5f12c7e84f8506.62@
798 798 In-Reply-To: <patchbomb.60@
799 799 References: <patchbomb.60@
800 800 User-Agent: Mercurial-patchbomb
801 801 Date: Thu, 01 Jan 1970 00:01:02 +0000
802 802 From: quux
803 803 To: foo
804 804 Cc: bar
805 805
806 806 --===
807 807 Content-Type: text/plain; charset="us-ascii"
808 808 MIME-Version: 1.0
809 809 Content-Transfer-Encoding: 7bit
810 810
811 811 Patch subject is complete summary.
812 812
813 813
814 814
815 815 --===
816 816 Content-Type: text/x-patch; charset="us-ascii"
817 817 MIME-Version: 1.0
818 818 Content-Transfer-Encoding: 7bit
819 819 Content-Disposition: attachment; filename=t2-2.patch
820 820
821 821 # HG changeset patch
822 822 # User test
823 823 # Date 2 0
824 824 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
825 825 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
826 826 b
827 827
828 828 diff -r 8580ff50825a -r 97d72e5f12c7 b
829 829 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
830 830 +++ b/b Thu Jan 01 00:00:02 1970 +0000
831 831 @@ -0,0 +1,1 @@
832 832 +b
833 833
834 834 --===
835 835 Displaying [PATCH 3 of 3] charset=utf-8; content-transfer-encoding: quoted-printable ...
836 836 Content-Type: multipart/mixed; boundary="===
837 837 MIME-Version: 1.0
838 838 Subject: [PATCH 3 of 3] charset=utf-8;
839 839 content-transfer-encoding: quoted-printable
840 840 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
841 841 Message-Id: <c655633f8c87700bb38c.63@
842 842 In-Reply-To: <patchbomb.60@
843 843 References: <patchbomb.60@
844 844 User-Agent: Mercurial-patchbomb
845 845 Date: Thu, 01 Jan 1970 00:01:03 +0000
846 846 From: quux
847 847 To: foo
848 848 Cc: bar
849 849
850 850 --===
851 851 Content-Type: text/plain; charset="us-ascii"
852 852 MIME-Version: 1.0
853 853 Content-Transfer-Encoding: 7bit
854 854
855 855 Patch subject is complete summary.
856 856
857 857
858 858
859 859 --===
860 860 Content-Type: text/x-patch; charset="us-ascii"
861 861 MIME-Version: 1.0
862 862 Content-Transfer-Encoding: quoted-printable
863 863 Content-Disposition: attachment; filename=t2-3.patch
864 864
865 865 # HG changeset patch
866 866 # User test
867 867 # Date 4 0
868 868 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
869 869 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
870 870 charset=3Dutf-8; content-transfer-encoding: quoted-printable
871 871
872 872 diff -r c3c9e37db9f4 -r c655633f8c87 qp
873 873 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
874 874 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
875 875 @@ -0,0 +1,4 @@
876 876 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
877 877 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
878 878 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
879 879 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
880 880 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
881 881 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
882 882 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
883 883 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
884 884 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
885 885 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
886 886 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
887 887 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
888 888 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
889 889 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
890 890 +foo
891 891 +
892 892 +bar
893 893
894 894 --===
895 895 % test intro for single patch
896 896 This patch series consists of 1 patches.
897 897
898 898
899 899 Write the introductory message for the patch series.
900 900
901 901
902 902 Displaying [PATCH 0 of 1] test ...
903 903 Content-Type: text/plain; charset="us-ascii"
904 904 MIME-Version: 1.0
905 905 Content-Transfer-Encoding: 7bit
906 906 Subject: [PATCH 0 of 1] test
907 907 Message-Id: <patchbomb.60@
908 908 User-Agent: Mercurial-patchbomb
909 909 Date: Thu, 01 Jan 1970 00:01:00 +0000
910 910 From: quux
911 911 To: foo
912 912 Cc: bar
913 913
914 914
915 915 Displaying [PATCH 1 of 1] c ...
916 916 Content-Type: text/plain; charset="us-ascii"
917 917 MIME-Version: 1.0
918 918 Content-Transfer-Encoding: 7bit
919 919 Subject: [PATCH 1 of 1] c
920 920 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
921 921 Message-Id: <ff2c9fa2018b15fa74b3.61@
922 922 In-Reply-To: <patchbomb.60@
923 923 References: <patchbomb.60@
924 924 User-Agent: Mercurial-patchbomb
925 925 Date: Thu, 01 Jan 1970 00:01:01 +0000
926 926 From: quux
927 927 To: foo
928 928 Cc: bar
929 929
930 930 # HG changeset patch
931 931 # User test
932 932 # Date 3 0
933 933 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
934 934 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
935 935 c
936 936
937 937 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
938 938 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
939 939 +++ b/c Thu Jan 01 00:00:03 1970 +0000
940 940 @@ -0,0 +1,1 @@
941 941 +c
942 942
943 % test --desc without --intro for a single patch
944 This patch series consists of 1 patches.
945
946
947 Displaying [PATCH 0 of 1] test ...
948 Content-Type: text/plain; charset="us-ascii"
949 MIME-Version: 1.0
950 Content-Transfer-Encoding: 7bit
951 Subject: [PATCH 0 of 1] test
952 Message-Id: <patchbomb.60@
953 User-Agent: Mercurial-patchbomb
954 Date: Thu, 01 Jan 1970 00:01:00 +0000
955 From: quux
956 To: foo
957 Cc: bar
958
959 foo
960
961 Displaying [PATCH 1 of 1] c ...
962 Content-Type: text/plain; charset="us-ascii"
963 MIME-Version: 1.0
964 Content-Transfer-Encoding: 7bit
965 Subject: [PATCH 1 of 1] c
966 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
967 Message-Id: <ff2c9fa2018b15fa74b3.61@
968 In-Reply-To: <patchbomb.60@
969 References: <patchbomb.60@
970 User-Agent: Mercurial-patchbomb
971 Date: Thu, 01 Jan 1970 00:01:01 +0000
972 From: quux
973 To: foo
974 Cc: bar
975
976 # HG changeset patch
977 # User test
978 # Date 3 0
979 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
980 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
981 c
982
983 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
984 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
985 +++ b/c Thu Jan 01 00:00:03 1970 +0000
986 @@ -0,0 +1,1 @@
987 +c
988
943 989 % test intro for multiple patches
944 990 This patch series consists of 2 patches.
945 991
946 992
947 993 Write the introductory message for the patch series.
948 994
949 995
950 996 Displaying [PATCH 0 of 2] test ...
951 997 Content-Type: text/plain; charset="us-ascii"
952 998 MIME-Version: 1.0
953 999 Content-Transfer-Encoding: 7bit
954 1000 Subject: [PATCH 0 of 2] test
955 1001 Message-Id: <patchbomb.60@
956 1002 User-Agent: Mercurial-patchbomb
957 1003 Date: Thu, 01 Jan 1970 00:01:00 +0000
958 1004 From: quux
959 1005 To: foo
960 1006 Cc: bar
961 1007
962 1008
963 1009 Displaying [PATCH 1 of 2] a ...
964 1010 Content-Type: text/plain; charset="us-ascii"
965 1011 MIME-Version: 1.0
966 1012 Content-Transfer-Encoding: 7bit
967 1013 Subject: [PATCH 1 of 2] a
968 1014 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
969 1015 Message-Id: <8580ff50825a50c8f716.61@
970 1016 In-Reply-To: <patchbomb.60@
971 1017 References: <patchbomb.60@
972 1018 User-Agent: Mercurial-patchbomb
973 1019 Date: Thu, 01 Jan 1970 00:01:01 +0000
974 1020 From: quux
975 1021 To: foo
976 1022 Cc: bar
977 1023
978 1024 # HG changeset patch
979 1025 # User test
980 1026 # Date 1 0
981 1027 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
982 1028 # Parent 0000000000000000000000000000000000000000
983 1029 a
984 1030
985 1031 diff -r 000000000000 -r 8580ff50825a a
986 1032 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
987 1033 +++ b/a Thu Jan 01 00:00:01 1970 +0000
988 1034 @@ -0,0 +1,1 @@
989 1035 +a
990 1036
991 1037 Displaying [PATCH 2 of 2] b ...
992 1038 Content-Type: text/plain; charset="us-ascii"
993 1039 MIME-Version: 1.0
994 1040 Content-Transfer-Encoding: 7bit
995 1041 Subject: [PATCH 2 of 2] b
996 1042 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
997 1043 Message-Id: <97d72e5f12c7e84f8506.62@
998 1044 In-Reply-To: <patchbomb.60@
999 1045 References: <patchbomb.60@
1000 1046 User-Agent: Mercurial-patchbomb
1001 1047 Date: Thu, 01 Jan 1970 00:01:02 +0000
1002 1048 From: quux
1003 1049 To: foo
1004 1050 Cc: bar
1005 1051
1006 1052 # HG changeset patch
1007 1053 # User test
1008 1054 # Date 2 0
1009 1055 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1010 1056 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1011 1057 b
1012 1058
1013 1059 diff -r 8580ff50825a -r 97d72e5f12c7 b
1014 1060 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1015 1061 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1016 1062 @@ -0,0 +1,1 @@
1017 1063 +b
1018 1064
1019 1065 % tagging csets
1020 1066 % test inline for single named patch
1021 1067 This patch series consists of 1 patches.
1022 1068
1023 1069
1024 1070 Displaying [PATCH] test ...
1025 1071 Content-Type: multipart/mixed; boundary="===
1026 1072 MIME-Version: 1.0
1027 1073 Subject: [PATCH] test
1028 1074 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1029 1075 Message-Id: <ff2c9fa2018b15fa74b3.60@
1030 1076 User-Agent: Mercurial-patchbomb
1031 1077 Date: Thu, 01 Jan 1970 00:01:00 +0000
1032 1078 From: quux
1033 1079 To: foo
1034 1080 Cc: bar
1035 1081
1036 1082 --===
1037 1083 Content-Type: text/x-patch; charset="us-ascii"
1038 1084 MIME-Version: 1.0
1039 1085 Content-Transfer-Encoding: 7bit
1040 1086 Content-Disposition: inline; filename=two.diff
1041 1087
1042 1088 # HG changeset patch
1043 1089 # User test
1044 1090 # Date 3 0
1045 1091 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1046 1092 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1047 1093 c
1048 1094
1049 1095 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1050 1096 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1051 1097 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1052 1098 @@ -0,0 +1,1 @@
1053 1099 +c
1054 1100
1055 1101 --===
1056 1102 % test inline for multiple named/unnamed patches
1057 1103 This patch series consists of 2 patches.
1058 1104
1059 1105
1060 1106 Write the introductory message for the patch series.
1061 1107
1062 1108
1063 1109 Displaying [PATCH 0 of 2] test ...
1064 1110 Content-Type: text/plain; charset="us-ascii"
1065 1111 MIME-Version: 1.0
1066 1112 Content-Transfer-Encoding: 7bit
1067 1113 Subject: [PATCH 0 of 2] test
1068 1114 Message-Id: <patchbomb.60@
1069 1115 User-Agent: Mercurial-patchbomb
1070 1116 Date: Thu, 01 Jan 1970 00:01:00 +0000
1071 1117 From: quux
1072 1118 To: foo
1073 1119 Cc: bar
1074 1120
1075 1121
1076 1122 Displaying [PATCH 1 of 2] a ...
1077 1123 Content-Type: multipart/mixed; boundary="===
1078 1124 MIME-Version: 1.0
1079 1125 Subject: [PATCH 1 of 2] a
1080 1126 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1081 1127 Message-Id: <8580ff50825a50c8f716.61@
1082 1128 In-Reply-To: <patchbomb.60@
1083 1129 References: <patchbomb.60@
1084 1130 User-Agent: Mercurial-patchbomb
1085 1131 Date: Thu, 01 Jan 1970 00:01:01 +0000
1086 1132 From: quux
1087 1133 To: foo
1088 1134 Cc: bar
1089 1135
1090 1136 --===
1091 1137 Content-Type: text/x-patch; charset="us-ascii"
1092 1138 MIME-Version: 1.0
1093 1139 Content-Transfer-Encoding: 7bit
1094 1140 Content-Disposition: inline; filename=t2-1.patch
1095 1141
1096 1142 # HG changeset patch
1097 1143 # User test
1098 1144 # Date 1 0
1099 1145 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1100 1146 # Parent 0000000000000000000000000000000000000000
1101 1147 a
1102 1148
1103 1149 diff -r 000000000000 -r 8580ff50825a a
1104 1150 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1105 1151 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1106 1152 @@ -0,0 +1,1 @@
1107 1153 +a
1108 1154
1109 1155 --===
1110 1156 Displaying [PATCH 2 of 2] b ...
1111 1157 Content-Type: multipart/mixed; boundary="===
1112 1158 MIME-Version: 1.0
1113 1159 Subject: [PATCH 2 of 2] b
1114 1160 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1115 1161 Message-Id: <97d72e5f12c7e84f8506.62@
1116 1162 In-Reply-To: <patchbomb.60@
1117 1163 References: <patchbomb.60@
1118 1164 User-Agent: Mercurial-patchbomb
1119 1165 Date: Thu, 01 Jan 1970 00:01:02 +0000
1120 1166 From: quux
1121 1167 To: foo
1122 1168 Cc: bar
1123 1169
1124 1170 --===
1125 1171 Content-Type: text/x-patch; charset="us-ascii"
1126 1172 MIME-Version: 1.0
1127 1173 Content-Transfer-Encoding: 7bit
1128 1174 Content-Disposition: inline; filename=one.patch
1129 1175
1130 1176 # HG changeset patch
1131 1177 # User test
1132 1178 # Date 2 0
1133 1179 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1134 1180 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1135 1181 b
1136 1182
1137 1183 diff -r 8580ff50825a -r 97d72e5f12c7 b
1138 1184 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1139 1185 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1140 1186 @@ -0,0 +1,1 @@
1141 1187 +b
1142 1188
1143 1189 --===
1144 1190 % test inreplyto
1145 1191 This patch series consists of 1 patches.
1146 1192
1147 1193
1148 1194 Displaying [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b ...
1149 1195 Content-Type: text/plain; charset="us-ascii"
1150 1196 MIME-Version: 1.0
1151 1197 Content-Transfer-Encoding: 7bit
1152 1198 Subject: [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b
1153 1199 X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6
1154 1200 Message-Id: <e317db6a6f288748d1f6.60@
1155 1201 In-Reply-To: <baz>
1156 1202 References: <baz>
1157 1203 User-Agent: Mercurial-patchbomb
1158 1204 Date: Thu, 01 Jan 1970 00:01:00 +0000
1159 1205 From: quux
1160 1206 To: foo
1161 1207 Cc: bar
1162 1208
1163 1209 # HG changeset patch
1164 1210 # User test
1165 1211 # Date 0 0
1166 1212 # Node ID e317db6a6f288748d1f6cb064f3810fcba66b1b6
1167 1213 # Parent eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1168 1214 Added tag two, two.diff for changeset ff2c9fa2018b
1169 1215
1170 1216 diff -r eae5fcf795ee -r e317db6a6f28 .hgtags
1171 1217 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
1172 1218 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1173 1219 @@ -2,3 +2,5 @@
1174 1220 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1175 1221 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
1176 1222 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
1177 1223 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two
1178 1224 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff
1179 1225
1180 1226 abort: Subject: [PATCH 0 of 2] Please enter a valid value
1181 1227 This patch series consists of 2 patches.
1182 1228
1183 1229 This patch series consists of 2 patches.
1184 1230
1185 1231
1186 1232 Write the introductory message for the patch series.
1187 1233
1188 1234
1189 1235 Displaying [PATCH 0 of 2] test ...
1190 1236 Content-Type: text/plain; charset="us-ascii"
1191 1237 MIME-Version: 1.0
1192 1238 Content-Transfer-Encoding: 7bit
1193 1239 Subject: [PATCH 0 of 2] test
1194 1240 Message-Id: <patchbomb.60@
1195 1241 In-Reply-To: <baz>
1196 1242 References: <baz>
1197 1243 User-Agent: Mercurial-patchbomb
1198 1244 Date: Thu, 01 Jan 1970 00:01:00 +0000
1199 1245 From: quux
1200 1246 To: foo
1201 1247 Cc: bar
1202 1248
1203 1249
1204 1250 Displaying [PATCH 1 of 2] a ...
1205 1251 Content-Type: text/plain; charset="us-ascii"
1206 1252 MIME-Version: 1.0
1207 1253 Content-Transfer-Encoding: 7bit
1208 1254 Subject: [PATCH 1 of 2] a
1209 1255 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1210 1256 Message-Id: <8580ff50825a50c8f716.61@
1211 1257 In-Reply-To: <patchbomb.60@
1212 1258 References: <patchbomb.60@
1213 1259 User-Agent: Mercurial-patchbomb
1214 1260 Date: Thu, 01 Jan 1970 00:01:01 +0000
1215 1261 From: quux
1216 1262 To: foo
1217 1263 Cc: bar
1218 1264
1219 1265 # HG changeset patch
1220 1266 # User test
1221 1267 # Date 1 0
1222 1268 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1223 1269 # Parent 0000000000000000000000000000000000000000
1224 1270 a
1225 1271
1226 1272 diff -r 000000000000 -r 8580ff50825a a
1227 1273 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1228 1274 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1229 1275 @@ -0,0 +1,1 @@
1230 1276 +a
1231 1277
1232 1278 Displaying [PATCH 2 of 2] b ...
1233 1279 Content-Type: text/plain; charset="us-ascii"
1234 1280 MIME-Version: 1.0
1235 1281 Content-Transfer-Encoding: 7bit
1236 1282 Subject: [PATCH 2 of 2] b
1237 1283 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1238 1284 Message-Id: <97d72e5f12c7e84f8506.62@
1239 1285 In-Reply-To: <patchbomb.60@
1240 1286 References: <patchbomb.60@
1241 1287 User-Agent: Mercurial-patchbomb
1242 1288 Date: Thu, 01 Jan 1970 00:01:02 +0000
1243 1289 From: quux
1244 1290 To: foo
1245 1291 Cc: bar
1246 1292
1247 1293 # HG changeset patch
1248 1294 # User test
1249 1295 # Date 2 0
1250 1296 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1251 1297 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1252 1298 b
1253 1299
1254 1300 diff -r 8580ff50825a -r 97d72e5f12c7 b
1255 1301 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1256 1302 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1257 1303 @@ -0,0 +1,1 @@
1258 1304 +b
1259 1305
1260 1306 % test single flag for single patch
1261 1307 This patch series consists of 1 patches.
1262 1308
1263 1309
1264 1310 Displaying [PATCH fooFlag] test ...
1265 1311 Content-Type: text/plain; charset="us-ascii"
1266 1312 MIME-Version: 1.0
1267 1313 Content-Transfer-Encoding: 7bit
1268 1314 Subject: [PATCH fooFlag] test
1269 1315 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1270 1316 Message-Id: <ff2c9fa2018b15fa74b3.60@
1271 1317 User-Agent: Mercurial-patchbomb
1272 1318 Date: Thu, 01 Jan 1970 00:01:00 +0000
1273 1319 From: quux
1274 1320 To: foo
1275 1321 Cc: bar
1276 1322
1277 1323 # HG changeset patch
1278 1324 # User test
1279 1325 # Date 3 0
1280 1326 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1281 1327 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1282 1328 c
1283 1329
1284 1330 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1285 1331 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1286 1332 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1287 1333 @@ -0,0 +1,1 @@
1288 1334 +c
1289 1335
1290 1336 % test single flag for multiple patches
1291 1337 This patch series consists of 2 patches.
1292 1338
1293 1339
1294 1340 Write the introductory message for the patch series.
1295 1341
1296 1342
1297 1343 Displaying [PATCH 0 of 2 fooFlag] test ...
1298 1344 Content-Type: text/plain; charset="us-ascii"
1299 1345 MIME-Version: 1.0
1300 1346 Content-Transfer-Encoding: 7bit
1301 1347 Subject: [PATCH 0 of 2 fooFlag] test
1302 1348 Message-Id: <patchbomb.60@
1303 1349 User-Agent: Mercurial-patchbomb
1304 1350 Date: Thu, 01 Jan 1970 00:01:00 +0000
1305 1351 From: quux
1306 1352 To: foo
1307 1353 Cc: bar
1308 1354
1309 1355
1310 1356 Displaying [PATCH 1 of 2 fooFlag] a ...
1311 1357 Content-Type: text/plain; charset="us-ascii"
1312 1358 MIME-Version: 1.0
1313 1359 Content-Transfer-Encoding: 7bit
1314 1360 Subject: [PATCH 1 of 2 fooFlag] a
1315 1361 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1316 1362 Message-Id: <8580ff50825a50c8f716.61@
1317 1363 In-Reply-To: <patchbomb.60@
1318 1364 References: <patchbomb.60@
1319 1365 User-Agent: Mercurial-patchbomb
1320 1366 Date: Thu, 01 Jan 1970 00:01:01 +0000
1321 1367 From: quux
1322 1368 To: foo
1323 1369 Cc: bar
1324 1370
1325 1371 # HG changeset patch
1326 1372 # User test
1327 1373 # Date 1 0
1328 1374 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1329 1375 # Parent 0000000000000000000000000000000000000000
1330 1376 a
1331 1377
1332 1378 diff -r 000000000000 -r 8580ff50825a a
1333 1379 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1334 1380 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1335 1381 @@ -0,0 +1,1 @@
1336 1382 +a
1337 1383
1338 1384 Displaying [PATCH 2 of 2 fooFlag] b ...
1339 1385 Content-Type: text/plain; charset="us-ascii"
1340 1386 MIME-Version: 1.0
1341 1387 Content-Transfer-Encoding: 7bit
1342 1388 Subject: [PATCH 2 of 2 fooFlag] b
1343 1389 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1344 1390 Message-Id: <97d72e5f12c7e84f8506.62@
1345 1391 In-Reply-To: <patchbomb.60@
1346 1392 References: <patchbomb.60@
1347 1393 User-Agent: Mercurial-patchbomb
1348 1394 Date: Thu, 01 Jan 1970 00:01:02 +0000
1349 1395 From: quux
1350 1396 To: foo
1351 1397 Cc: bar
1352 1398
1353 1399 # HG changeset patch
1354 1400 # User test
1355 1401 # Date 2 0
1356 1402 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1357 1403 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1358 1404 b
1359 1405
1360 1406 diff -r 8580ff50825a -r 97d72e5f12c7 b
1361 1407 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1362 1408 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1363 1409 @@ -0,0 +1,1 @@
1364 1410 +b
1365 1411
1366 1412 % test mutiple flags for single patch
1367 1413 This patch series consists of 1 patches.
1368 1414
1369 1415
1370 1416 Displaying [PATCH fooFlag barFlag] test ...
1371 1417 Content-Type: text/plain; charset="us-ascii"
1372 1418 MIME-Version: 1.0
1373 1419 Content-Transfer-Encoding: 7bit
1374 1420 Subject: [PATCH fooFlag barFlag] test
1375 1421 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1376 1422 Message-Id: <ff2c9fa2018b15fa74b3.60@
1377 1423 User-Agent: Mercurial-patchbomb
1378 1424 Date: Thu, 01 Jan 1970 00:01:00 +0000
1379 1425 From: quux
1380 1426 To: foo
1381 1427 Cc: bar
1382 1428
1383 1429 # HG changeset patch
1384 1430 # User test
1385 1431 # Date 3 0
1386 1432 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1387 1433 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1388 1434 c
1389 1435
1390 1436 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1391 1437 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1392 1438 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1393 1439 @@ -0,0 +1,1 @@
1394 1440 +c
1395 1441
1396 1442 % test multiple flags for multiple patches
1397 1443 This patch series consists of 2 patches.
1398 1444
1399 1445
1400 1446 Write the introductory message for the patch series.
1401 1447
1402 1448
1403 1449 Displaying [PATCH 0 of 2 fooFlag barFlag] test ...
1404 1450 Content-Type: text/plain; charset="us-ascii"
1405 1451 MIME-Version: 1.0
1406 1452 Content-Transfer-Encoding: 7bit
1407 1453 Subject: [PATCH 0 of 2 fooFlag barFlag] test
1408 1454 Message-Id: <patchbomb.60@
1409 1455 User-Agent: Mercurial-patchbomb
1410 1456 Date: Thu, 01 Jan 1970 00:01:00 +0000
1411 1457 From: quux
1412 1458 To: foo
1413 1459 Cc: bar
1414 1460
1415 1461
1416 1462 Displaying [PATCH 1 of 2 fooFlag barFlag] a ...
1417 1463 Content-Type: text/plain; charset="us-ascii"
1418 1464 MIME-Version: 1.0
1419 1465 Content-Transfer-Encoding: 7bit
1420 1466 Subject: [PATCH 1 of 2 fooFlag barFlag] a
1421 1467 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1422 1468 Message-Id: <8580ff50825a50c8f716.61@
1423 1469 In-Reply-To: <patchbomb.60@
1424 1470 References: <patchbomb.60@
1425 1471 User-Agent: Mercurial-patchbomb
1426 1472 Date: Thu, 01 Jan 1970 00:01:01 +0000
1427 1473 From: quux
1428 1474 To: foo
1429 1475 Cc: bar
1430 1476
1431 1477 # HG changeset patch
1432 1478 # User test
1433 1479 # Date 1 0
1434 1480 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1435 1481 # Parent 0000000000000000000000000000000000000000
1436 1482 a
1437 1483
1438 1484 diff -r 000000000000 -r 8580ff50825a a
1439 1485 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1440 1486 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1441 1487 @@ -0,0 +1,1 @@
1442 1488 +a
1443 1489
1444 1490 Displaying [PATCH 2 of 2 fooFlag barFlag] b ...
1445 1491 Content-Type: text/plain; charset="us-ascii"
1446 1492 MIME-Version: 1.0
1447 1493 Content-Transfer-Encoding: 7bit
1448 1494 Subject: [PATCH 2 of 2 fooFlag barFlag] b
1449 1495 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1450 1496 Message-Id: <97d72e5f12c7e84f8506.62@
1451 1497 In-Reply-To: <patchbomb.60@
1452 1498 References: <patchbomb.60@
1453 1499 User-Agent: Mercurial-patchbomb
1454 1500 Date: Thu, 01 Jan 1970 00:01:02 +0000
1455 1501 From: quux
1456 1502 To: foo
1457 1503 Cc: bar
1458 1504
1459 1505 # HG changeset patch
1460 1506 # User test
1461 1507 # Date 2 0
1462 1508 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1463 1509 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1464 1510 b
1465 1511
1466 1512 diff -r 8580ff50825a -r 97d72e5f12c7 b
1467 1513 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1468 1514 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1469 1515 @@ -0,0 +1,1 @@
1470 1516 +b
1471 1517
1472 1518 % test multi-address parsing
1473 1519 This patch series consists of 1 patches.
1474 1520
1475 1521
1476 1522 Writing [PATCH] test ...
1477 1523 From quux Tue Jan 01 00:01:01 1980
1478 1524 Content-Type: text/plain; charset="us-ascii"
1479 1525 MIME-Version: 1.0
1480 1526 Content-Transfer-Encoding: 7bit
1481 1527 Subject: [PATCH] test
1482 1528 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1483 1529 Message-Id: <8580ff50825a50c8f716.315532860@
1484 1530 User-Agent: Mercurial-patchbomb
1485 1531 Date: Tue, 01 Jan 1980 00:01:00 +0000
1486 1532 From: quux
1487 1533 To: spam <spam>, eggs, toast
1488 1534 Cc: foo, bar@example.com, "A, B <>" <a@example.com>
1489 1535 Bcc: "Quux, A." <quux>
1490 1536
1491 1537 # HG changeset patch
1492 1538 # User test
1493 1539 # Date 1 0
1494 1540 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1495 1541 # Parent 0000000000000000000000000000000000000000
1496 1542 a
1497 1543
1498 1544 diff -r 000000000000 -r 8580ff50825a a
1499 1545 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1500 1546 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1501 1547 @@ -0,0 +1,1 @@
1502 1548 +a
1503 1549
1504 1550
1505 1551 % test multi-byte domain parsing
1506 1552 This patch series consists of 1 patches.
1507 1553
1508 1554
1509 1555 Writing [PATCH] test ...
1510 1556 From quux Tue Jan 01 00:01:01 1980
1511 1557 Content-Type: text/plain; charset="us-ascii"
1512 1558 MIME-Version: 1.0
1513 1559 Content-Transfer-Encoding: 7bit
1514 1560 Subject: [PATCH] test
1515 1561 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1516 1562 Message-Id: <8580ff50825a50c8f716.315532860@
1517 1563 User-Agent: Mercurial-patchbomb
1518 1564 Date: Tue, 01 Jan 1980 00:01:00 +0000
1519 1565 From: quux
1520 1566 To: bar@xn--nicode-2ya.com
1521 1567
1522 1568 # HG changeset patch
1523 1569 # User test
1524 1570 # Date 1 0
1525 1571 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1526 1572 # Parent 0000000000000000000000000000000000000000
1527 1573 a
1528 1574
1529 1575 diff -r 000000000000 -r 8580ff50825a a
1530 1576 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1531 1577 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1532 1578 @@ -0,0 +1,1 @@
1533 1579 +a
1534 1580
1535 1581
1536 1582 % test outgoing
1537 1583 0 files updated, 0 files merged, 6 files removed, 0 files unresolved
1538 1584 marked working directory as branch test
1539 1585 created new head
1540 1586 comparing with ../t
1541 1587 searching for changes
1542 1588 This patch series consists of 8 patches.
1543 1589
1544 1590
1545 1591 Write the introductory message for the patch series.
1546 1592
1547 1593
1548 1594 Displaying [PATCH 0 of 8] test ...
1549 1595 Content-Type: text/plain; charset="us-ascii"
1550 1596 MIME-Version: 1.0
1551 1597 Content-Transfer-Encoding: 7bit
1552 1598 Subject: [PATCH 0 of 8] test
1553 1599 Message-Id: <patchbomb.315532860@
1554 1600 User-Agent: Mercurial-patchbomb
1555 1601 Date: Tue, 01 Jan 1980 00:01:00 +0000
1556 1602 From: test
1557 1603 To: foo
1558 1604
1559 1605
1560 1606 Displaying [PATCH 1 of 8] c ...
1561 1607 Content-Type: text/plain; charset="us-ascii"
1562 1608 MIME-Version: 1.0
1563 1609 Content-Transfer-Encoding: 7bit
1564 1610 Subject: [PATCH 1 of 8] c
1565 1611 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1566 1612 Message-Id: <ff2c9fa2018b15fa74b3.315532861@
1567 1613 In-Reply-To: <patchbomb.315532860@
1568 1614 References: <patchbomb.315532860@
1569 1615 User-Agent: Mercurial-patchbomb
1570 1616 Date: Tue, 01 Jan 1980 00:01:01 +0000
1571 1617 From: test
1572 1618 To: foo
1573 1619
1574 1620 # HG changeset patch
1575 1621 # User test
1576 1622 # Date 3 0
1577 1623 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1578 1624 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1579 1625 c
1580 1626
1581 1627 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1582 1628 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1583 1629 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1584 1630 @@ -0,0 +1,1 @@
1585 1631 +c
1586 1632
1587 1633 Displaying [PATCH 2 of 8] charset=utf-8; content-transfer-encoding: base64 ...
1588 1634 Content-Type: text/plain; charset="us-ascii"
1589 1635 MIME-Version: 1.0
1590 1636 Content-Transfer-Encoding: 8bit
1591 1637 Subject: [PATCH 2 of 8] charset=utf-8; content-transfer-encoding: base64
1592 1638 X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
1593 1639 Message-Id: <c3c9e37db9f4fe4882cd.315532862@
1594 1640 In-Reply-To: <patchbomb.315532860@
1595 1641 References: <patchbomb.315532860@
1596 1642 User-Agent: Mercurial-patchbomb
1597 1643 Date: Tue, 01 Jan 1980 00:01:02 +0000
1598 1644 From: test
1599 1645 To: foo
1600 1646
1601 1647 # HG changeset patch
1602 1648 # User test
1603 1649 # Date 4 0
1604 1650 # Node ID c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
1605 1651 # Parent ff2c9fa2018b15fa74b33363bda9527323e2a99f
1606 1652 charset=utf-8; content-transfer-encoding: base64
1607 1653
1608 1654 diff -r ff2c9fa2018b -r c3c9e37db9f4 description
1609 1655 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1610 1656 +++ b/description Thu Jan 01 00:00:04 1970 +0000
1611 1657 @@ -0,0 +1,3 @@
1612 1658 +a multiline
1613 1659 +
1614 1660 +description
1615 1661 diff -r ff2c9fa2018b -r c3c9e37db9f4 utf
1616 1662 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1617 1663 +++ b/utf Thu Jan 01 00:00:04 1970 +0000
1618 1664 @@ -0,0 +1,1 @@
1619 1665 +hömma!
1620 1666
1621 1667 Displaying [PATCH 3 of 8] charset=utf-8; content-transfer-encoding: quoted-printable ...
1622 1668 Content-Type: text/plain; charset="us-ascii"
1623 1669 MIME-Version: 1.0
1624 1670 Content-Transfer-Encoding: quoted-printable
1625 1671 Subject: [PATCH 3 of 8] charset=utf-8;
1626 1672 content-transfer-encoding: quoted-printable
1627 1673 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
1628 1674 Message-Id: <c655633f8c87700bb38c.315532863@
1629 1675 In-Reply-To: <patchbomb.315532860@
1630 1676 References: <patchbomb.315532860@
1631 1677 User-Agent: Mercurial-patchbomb
1632 1678 Date: Tue, 01 Jan 1980 00:01:03 +0000
1633 1679 From: test
1634 1680 To: foo
1635 1681
1636 1682 # HG changeset patch
1637 1683 # User test
1638 1684 # Date 4 0
1639 1685 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
1640 1686 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
1641 1687 charset=3Dutf-8; content-transfer-encoding: quoted-printable
1642 1688
1643 1689 diff -r c3c9e37db9f4 -r c655633f8c87 qp
1644 1690 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1645 1691 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
1646 1692 @@ -0,0 +1,4 @@
1647 1693 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1648 1694 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1649 1695 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1650 1696 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1651 1697 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1652 1698 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1653 1699 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1654 1700 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1655 1701 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1656 1702 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1657 1703 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1658 1704 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1659 1705 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1660 1706 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1661 1707 +foo
1662 1708 +
1663 1709 +bar
1664 1710
1665 1711 Displaying [PATCH 4 of 8] charset=us-ascii; content-transfer-encoding: 8bit ...
1666 1712 Content-Type: text/plain; charset="us-ascii"
1667 1713 MIME-Version: 1.0
1668 1714 Content-Transfer-Encoding: 8bit
1669 1715 Subject: [PATCH 4 of 8] charset=us-ascii; content-transfer-encoding: 8bit
1670 1716 X-Mercurial-Node: 22d0f96be12f5945fd67d101af58f7bc8263c835
1671 1717 Message-Id: <22d0f96be12f5945fd67.315532864@
1672 1718 In-Reply-To: <patchbomb.315532860@
1673 1719 References: <patchbomb.315532860@
1674 1720 User-Agent: Mercurial-patchbomb
1675 1721 Date: Tue, 01 Jan 1980 00:01:04 +0000
1676 1722 From: test
1677 1723 To: foo
1678 1724
1679 1725 # HG changeset patch
1680 1726 # User test
1681 1727 # Date 5 0
1682 1728 # Node ID 22d0f96be12f5945fd67d101af58f7bc8263c835
1683 1729 # Parent c655633f8c87700bb38cc6a59a2753bdc5a6c376
1684 1730 charset=us-ascii; content-transfer-encoding: 8bit
1685 1731
1686 1732 diff -r c655633f8c87 -r 22d0f96be12f isolatin
1687 1733 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1688 1734 +++ b/isolatin Thu Jan 01 00:00:05 1970 +0000
1689 1735 @@ -0,0 +1,1 @@
1690 1736 +h�mma!
1691 1737
1692 1738 Displaying [PATCH 5 of 8] Added tag zero, zero.foo for changeset 8580ff50825a ...
1693 1739 Content-Type: text/plain; charset="us-ascii"
1694 1740 MIME-Version: 1.0
1695 1741 Content-Transfer-Encoding: 7bit
1696 1742 Subject: [PATCH 5 of 8] Added tag zero, zero.foo for changeset 8580ff50825a
1697 1743 X-Mercurial-Node: dd9c2b4b8a8a0934d5523c15f2c119b362360903
1698 1744 Message-Id: <dd9c2b4b8a8a0934d552.315532865@
1699 1745 In-Reply-To: <patchbomb.315532860@
1700 1746 References: <patchbomb.315532860@
1701 1747 User-Agent: Mercurial-patchbomb
1702 1748 Date: Tue, 01 Jan 1980 00:01:05 +0000
1703 1749 From: test
1704 1750 To: foo
1705 1751
1706 1752 # HG changeset patch
1707 1753 # User test
1708 1754 # Date 0 0
1709 1755 # Node ID dd9c2b4b8a8a0934d5523c15f2c119b362360903
1710 1756 # Parent 22d0f96be12f5945fd67d101af58f7bc8263c835
1711 1757 Added tag zero, zero.foo for changeset 8580ff50825a
1712 1758
1713 1759 diff -r 22d0f96be12f -r dd9c2b4b8a8a .hgtags
1714 1760 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1715 1761 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1716 1762 @@ -0,0 +1,2 @@
1717 1763 +8580ff50825a50c8f716709acdf8de0deddcd6ab zero
1718 1764 +8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1719 1765
1720 1766 Displaying [PATCH 6 of 8] Added tag one, one.patch for changeset 97d72e5f12c7 ...
1721 1767 Content-Type: text/plain; charset="us-ascii"
1722 1768 MIME-Version: 1.0
1723 1769 Content-Transfer-Encoding: 7bit
1724 1770 Subject: [PATCH 6 of 8] Added tag one, one.patch for changeset 97d72e5f12c7
1725 1771 X-Mercurial-Node: eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1726 1772 Message-Id: <eae5fcf795eee29d0e45.315532866@
1727 1773 In-Reply-To: <patchbomb.315532860@
1728 1774 References: <patchbomb.315532860@
1729 1775 User-Agent: Mercurial-patchbomb
1730 1776 Date: Tue, 01 Jan 1980 00:01:06 +0000
1731 1777 From: test
1732 1778 To: foo
1733 1779
1734 1780 # HG changeset patch
1735 1781 # User test
1736 1782 # Date 0 0
1737 1783 # Node ID eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1738 1784 # Parent dd9c2b4b8a8a0934d5523c15f2c119b362360903
1739 1785 Added tag one, one.patch for changeset 97d72e5f12c7
1740 1786
1741 1787 diff -r dd9c2b4b8a8a -r eae5fcf795ee .hgtags
1742 1788 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
1743 1789 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1744 1790 @@ -1,2 +1,4 @@
1745 1791 8580ff50825a50c8f716709acdf8de0deddcd6ab zero
1746 1792 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1747 1793 +97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
1748 1794 +97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
1749 1795
1750 1796 Displaying [PATCH 7 of 8] Added tag two, two.diff for changeset ff2c9fa2018b ...
1751 1797 Content-Type: text/plain; charset="us-ascii"
1752 1798 MIME-Version: 1.0
1753 1799 Content-Transfer-Encoding: 7bit
1754 1800 Subject: [PATCH 7 of 8] Added tag two, two.diff for changeset ff2c9fa2018b
1755 1801 X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6
1756 1802 Message-Id: <e317db6a6f288748d1f6.315532867@
1757 1803 In-Reply-To: <patchbomb.315532860@
1758 1804 References: <patchbomb.315532860@
1759 1805 User-Agent: Mercurial-patchbomb
1760 1806 Date: Tue, 01 Jan 1980 00:01:07 +0000
1761 1807 From: test
1762 1808 To: foo
1763 1809
1764 1810 # HG changeset patch
1765 1811 # User test
1766 1812 # Date 0 0
1767 1813 # Node ID e317db6a6f288748d1f6cb064f3810fcba66b1b6
1768 1814 # Parent eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1769 1815 Added tag two, two.diff for changeset ff2c9fa2018b
1770 1816
1771 1817 diff -r eae5fcf795ee -r e317db6a6f28 .hgtags
1772 1818 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
1773 1819 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1774 1820 @@ -2,3 +2,5 @@
1775 1821 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1776 1822 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
1777 1823 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
1778 1824 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two
1779 1825 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff
1780 1826
1781 1827 Displaying [PATCH 8 of 8] d ...
1782 1828 Content-Type: text/plain; charset="us-ascii"
1783 1829 MIME-Version: 1.0
1784 1830 Content-Transfer-Encoding: 7bit
1785 1831 Subject: [PATCH 8 of 8] d
1786 1832 X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1787 1833 Message-Id: <2f9fa9b998c5fe3ac2bd.315532868@
1788 1834 In-Reply-To: <patchbomb.315532860@
1789 1835 References: <patchbomb.315532860@
1790 1836 User-Agent: Mercurial-patchbomb
1791 1837 Date: Tue, 01 Jan 1980 00:01:08 +0000
1792 1838 From: test
1793 1839 To: foo
1794 1840
1795 1841 # HG changeset patch
1796 1842 # User test
1797 1843 # Date 4 0
1798 1844 # Branch test
1799 1845 # Node ID 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1800 1846 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1801 1847 d
1802 1848
1803 1849 diff -r 97d72e5f12c7 -r 2f9fa9b998c5 d
1804 1850 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1805 1851 +++ b/d Thu Jan 01 00:00:04 1970 +0000
1806 1852 @@ -0,0 +1,1 @@
1807 1853 +d
1808 1854
1809 1855 % dest#branch URIs
1810 1856 comparing with ../t
1811 1857 searching for changes
1812 1858 This patch series consists of 1 patches.
1813 1859
1814 1860
1815 1861 Displaying [PATCH] test ...
1816 1862 Content-Type: text/plain; charset="us-ascii"
1817 1863 MIME-Version: 1.0
1818 1864 Content-Transfer-Encoding: 7bit
1819 1865 Subject: [PATCH] test
1820 1866 X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1821 1867 Message-Id: <2f9fa9b998c5fe3ac2bd.315532860@
1822 1868 User-Agent: Mercurial-patchbomb
1823 1869 Date: Tue, 01 Jan 1980 00:01:00 +0000
1824 1870 From: test
1825 1871 To: foo
1826 1872
1827 1873 # HG changeset patch
1828 1874 # User test
1829 1875 # Date 4 0
1830 1876 # Branch test
1831 1877 # Node ID 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1832 1878 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1833 1879 d
1834 1880
1835 1881 diff -r 97d72e5f12c7 -r 2f9fa9b998c5 d
1836 1882 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1837 1883 +++ b/d Thu Jan 01 00:00:04 1970 +0000
1838 1884 @@ -0,0 +1,1 @@
1839 1885 +d
1840 1886
General Comments 0
You need to be logged in to leave comments. Login now