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