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