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