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