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