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