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