##// END OF EJS Templates
patchbomb: --desc implies --intro...
Cédric Duval -
r10734:7a0502a6 default
parent child Browse files
Show More
@@ -1,523 +1,527
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
37
38 Use ``[patchbomb]`` as configuration section name if you need to
38 Use ``[patchbomb]`` as configuration section name if you need to
39 override global ``[email]`` address settings.
39 override global ``[email]`` address settings.
40
40
41 Then you can use the "hg email" command to mail a series of changesets
41 Then you can use the "hg email" command to mail a series of changesets
42 as a patchbomb.
42 as a patchbomb.
43
43
44 To avoid sending patches prematurely, it is a good idea to first run
44 To avoid sending patches prematurely, it is a good idea to first run
45 the "email" command with the "-n" option (test only). You will be
45 the "email" command with the "-n" option (test only). You will be
46 prompted for an email recipient address, a subject and an introductory
46 prompted for an email recipient address, a subject and an introductory
47 message describing the patches of your patchbomb. Then when all is
47 message describing the patches of your patchbomb. Then when all is
48 done, patchbomb messages are displayed. If the PAGER environment
48 done, patchbomb messages are displayed. If the PAGER environment
49 variable is set, your pager will be fired up once for each patchbomb
49 variable is set, your pager will be fired up once for each patchbomb
50 message, so you can verify everything is alright.
50 message, so you can verify everything is alright.
51
51
52 The -m/--mbox option is also very useful. Instead of previewing each
52 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
53 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
54 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
55 can be previewed with any mail user agent which supports UNIX mbox
56 files, e.g. with mutt::
56 files, e.g. with mutt::
57
57
58 % mutt -R -f mbox
58 % mutt -R -f mbox
59
59
60 When you are previewing the patchbomb messages, you can use ``formail``
60 When you are previewing the patchbomb messages, you can use ``formail``
61 (a utility that is commonly installed as part of the procmail
61 (a utility that is commonly installed as part of the procmail
62 package), to send each message out::
62 package), to send each message out::
63
63
64 % formail -s sendmail -bm -t < mbox
64 % formail -s sendmail -bm -t < mbox
65
65
66 That should be all. Now your patchbomb is on its way out.
66 That should be all. Now your patchbomb is on its way out.
67
67
68 You can also either configure the method option in the email section
68 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
69 to be a sendmail compatible mailer or fill out the [smtp] section so
70 that the patchbomb extension can automatically send patchbombs
70 that the patchbomb extension can automatically send patchbombs
71 directly from the commandline. See the [email] and [smtp] sections in
71 directly from the commandline. See the [email] and [smtp] sections in
72 hgrc(5) for details.
72 hgrc(5) for details.
73 '''
73 '''
74
74
75 import os, errno, socket, tempfile, cStringIO, time
75 import os, errno, socket, tempfile, cStringIO, time
76 import email.MIMEMultipart, email.MIMEBase
76 import email.MIMEMultipart, email.MIMEBase
77 import email.Utils, email.Encoders, email.Generator
77 import email.Utils, email.Encoders, email.Generator
78 from mercurial import cmdutil, commands, hg, mail, patch, util
78 from mercurial import cmdutil, commands, hg, mail, patch, util
79 from mercurial.i18n import _
79 from mercurial.i18n import _
80 from mercurial.node import bin
80 from mercurial.node import bin
81
81
82 def prompt(ui, prompt, default=None, rest=':'):
82 def prompt(ui, prompt, default=None, rest=':'):
83 if not ui.interactive():
83 if not ui.interactive():
84 if default is not None:
84 if default is not None:
85 return default
85 return default
86 raise util.Abort(_("%s Please enter a valid value" % (prompt + rest)))
86 raise util.Abort(_("%s Please enter a valid value" % (prompt + rest)))
87 if default:
87 if default:
88 prompt += ' [%s]' % default
88 prompt += ' [%s]' % default
89 prompt += rest
89 prompt += rest
90 while True:
90 while True:
91 r = ui.prompt(prompt, default=default)
91 r = ui.prompt(prompt, default=default)
92 if r:
92 if r:
93 return r
93 return r
94 if default is not None:
94 if default is not None:
95 return default
95 return default
96 ui.warn(_('Please enter a valid value.\n'))
96 ui.warn(_('Please enter a valid value.\n'))
97
97
98 def cdiffstat(ui, summary, patchlines):
98 def cdiffstat(ui, summary, patchlines):
99 s = patch.diffstat(patchlines)
99 s = patch.diffstat(patchlines)
100 if summary:
100 if summary:
101 ui.write(summary, '\n')
101 ui.write(summary, '\n')
102 ui.write(s, '\n')
102 ui.write(s, '\n')
103 ans = prompt(ui, _('does the diffstat above look okay?'), 'y')
103 ans = prompt(ui, _('does the diffstat above look okay?'), 'y')
104 if not ans.lower().startswith('y'):
104 if not ans.lower().startswith('y'):
105 raise util.Abort(_('diffstat rejected'))
105 raise util.Abort(_('diffstat rejected'))
106 return s
106 return s
107
107
108 def introneeded(opts, number):
109 '''is an introductory message required?'''
110 return number > 1 or opts.get('intro') or opts.get('desc')
111
108 def makepatch(ui, repo, patch, opts, _charsets, idx, total, patchname=None):
112 def makepatch(ui, repo, patch, opts, _charsets, idx, total, patchname=None):
109
113
110 desc = []
114 desc = []
111 node = None
115 node = None
112 body = ''
116 body = ''
113
117
114 for line in patch:
118 for line in patch:
115 if line.startswith('#'):
119 if line.startswith('#'):
116 if line.startswith('# Node ID'):
120 if line.startswith('# Node ID'):
117 node = line.split()[-1]
121 node = line.split()[-1]
118 continue
122 continue
119 if line.startswith('diff -r') or line.startswith('diff --git'):
123 if line.startswith('diff -r') or line.startswith('diff --git'):
120 break
124 break
121 desc.append(line)
125 desc.append(line)
122
126
123 if not patchname and not node:
127 if not patchname and not node:
124 raise ValueError
128 raise ValueError
125
129
126 if opts.get('attach'):
130 if opts.get('attach'):
127 body = ('\n'.join(desc[1:]).strip() or
131 body = ('\n'.join(desc[1:]).strip() or
128 'Patch subject is complete summary.')
132 'Patch subject is complete summary.')
129 body += '\n\n\n'
133 body += '\n\n\n'
130
134
131 if opts.get('plain'):
135 if opts.get('plain'):
132 while patch and patch[0].startswith('# '):
136 while patch and patch[0].startswith('# '):
133 patch.pop(0)
137 patch.pop(0)
134 if patch:
138 if patch:
135 patch.pop(0)
139 patch.pop(0)
136 while patch and not patch[0].strip():
140 while patch and not patch[0].strip():
137 patch.pop(0)
141 patch.pop(0)
138
142
139 if opts.get('diffstat'):
143 if opts.get('diffstat'):
140 body += cdiffstat(ui, '\n'.join(desc), patch) + '\n\n'
144 body += cdiffstat(ui, '\n'.join(desc), patch) + '\n\n'
141
145
142 if opts.get('attach') or opts.get('inline'):
146 if opts.get('attach') or opts.get('inline'):
143 msg = email.MIMEMultipart.MIMEMultipart()
147 msg = email.MIMEMultipart.MIMEMultipart()
144 if body:
148 if body:
145 msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test')))
149 msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test')))
146 p = mail.mimetextpatch('\n'.join(patch), 'x-patch', opts.get('test'))
150 p = mail.mimetextpatch('\n'.join(patch), 'x-patch', opts.get('test'))
147 binnode = bin(node)
151 binnode = bin(node)
148 # if node is mq patch, it will have the patch file's name as a tag
152 # if node is mq patch, it will have the patch file's name as a tag
149 if not patchname:
153 if not patchname:
150 patchtags = [t for t in repo.nodetags(binnode)
154 patchtags = [t for t in repo.nodetags(binnode)
151 if t.endswith('.patch') or t.endswith('.diff')]
155 if t.endswith('.patch') or t.endswith('.diff')]
152 if patchtags:
156 if patchtags:
153 patchname = patchtags[0]
157 patchname = patchtags[0]
154 elif total > 1:
158 elif total > 1:
155 patchname = cmdutil.make_filename(repo, '%b-%n.patch',
159 patchname = cmdutil.make_filename(repo, '%b-%n.patch',
156 binnode, seqno=idx, total=total)
160 binnode, seqno=idx, total=total)
157 else:
161 else:
158 patchname = cmdutil.make_filename(repo, '%b.patch', binnode)
162 patchname = cmdutil.make_filename(repo, '%b.patch', binnode)
159 disposition = 'inline'
163 disposition = 'inline'
160 if opts.get('attach'):
164 if opts.get('attach'):
161 disposition = 'attachment'
165 disposition = 'attachment'
162 p['Content-Disposition'] = disposition + '; filename=' + patchname
166 p['Content-Disposition'] = disposition + '; filename=' + patchname
163 msg.attach(p)
167 msg.attach(p)
164 else:
168 else:
165 body += '\n'.join(patch)
169 body += '\n'.join(patch)
166 msg = mail.mimetextpatch(body, display=opts.get('test'))
170 msg = mail.mimetextpatch(body, display=opts.get('test'))
167
171
168 flag = ' '.join(opts.get('flag'))
172 flag = ' '.join(opts.get('flag'))
169 if flag:
173 if flag:
170 flag = ' ' + flag
174 flag = ' ' + flag
171
175
172 subj = desc[0].strip().rstrip('. ')
176 subj = desc[0].strip().rstrip('. ')
173 if total == 1 and not opts.get('intro'):
177 if not introneeded(opts, total):
174 subj = '[PATCH%s] %s' % (flag, opts.get('subject') or subj)
178 subj = '[PATCH%s] %s' % (flag, opts.get('subject') or subj)
175 else:
179 else:
176 tlen = len(str(total))
180 tlen = len(str(total))
177 subj = '[PATCH %0*d of %d%s] %s' % (tlen, idx, total, flag, subj)
181 subj = '[PATCH %0*d of %d%s] %s' % (tlen, idx, total, flag, subj)
178 msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test'))
182 msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test'))
179 msg['X-Mercurial-Node'] = node
183 msg['X-Mercurial-Node'] = node
180 return msg, subj
184 return msg, subj
181
185
182 def patchbomb(ui, repo, *revs, **opts):
186 def patchbomb(ui, repo, *revs, **opts):
183 '''send changesets by email
187 '''send changesets by email
184
188
185 By default, diffs are sent in the format generated by hg export,
189 By default, diffs are sent in the format generated by hg export,
186 one per message. The series starts with a "[PATCH 0 of N]"
190 one per message. The series starts with a "[PATCH 0 of N]"
187 introduction, which describes the series as a whole.
191 introduction, which describes the series as a whole.
188
192
189 Each patch email has a Subject line of "[PATCH M of N] ...", using
193 Each patch email has a Subject line of "[PATCH M of N] ...", using
190 the first line of the changeset description as the subject text.
194 the first line of the changeset description as the subject text.
191 The message contains two or three parts. First, the changeset
195 The message contains two or three parts. First, the changeset
192 description. Next, (optionally) if the diffstat program is
196 description. Next, (optionally) if the diffstat program is
193 installed and -d/--diffstat is used, the result of running
197 installed and -d/--diffstat is used, the result of running
194 diffstat on the patch. Finally, the patch itself, as generated by
198 diffstat on the patch. Finally, the patch itself, as generated by
195 "hg export".
199 "hg export".
196
200
197 By default the patch is included as text in the email body for
201 By default the patch is included as text in the email body for
198 easy reviewing. Using the -a/--attach option will instead create
202 easy reviewing. Using the -a/--attach option will instead create
199 an attachment for the patch. With -i/--inline an inline attachment
203 an attachment for the patch. With -i/--inline an inline attachment
200 will be created.
204 will be created.
201
205
202 With -o/--outgoing, emails will be generated for patches not found
206 With -o/--outgoing, emails will be generated for patches not found
203 in the destination repository (or only those which are ancestors
207 in the destination repository (or only those which are ancestors
204 of the specified revisions if any are provided)
208 of the specified revisions if any are provided)
205
209
206 With -b/--bundle, changesets are selected as for --outgoing, but a
210 With -b/--bundle, changesets are selected as for --outgoing, but a
207 single email containing a binary Mercurial bundle as an attachment
211 single email containing a binary Mercurial bundle as an attachment
208 will be sent.
212 will be sent.
209
213
210 Examples::
214 Examples::
211
215
212 hg email -r 3000 # send patch 3000 only
216 hg email -r 3000 # send patch 3000 only
213 hg email -r 3000 -r 3001 # send patches 3000 and 3001
217 hg email -r 3000 -r 3001 # send patches 3000 and 3001
214 hg email -r 3000:3005 # send patches 3000 through 3005
218 hg email -r 3000:3005 # send patches 3000 through 3005
215 hg email 3000 # send patch 3000 (deprecated)
219 hg email 3000 # send patch 3000 (deprecated)
216
220
217 hg email -o # send all patches not in default
221 hg email -o # send all patches not in default
218 hg email -o DEST # send all patches not in DEST
222 hg email -o DEST # send all patches not in DEST
219 hg email -o -r 3000 # send all ancestors of 3000 not in default
223 hg email -o -r 3000 # send all ancestors of 3000 not in default
220 hg email -o -r 3000 DEST # send all ancestors of 3000 not in DEST
224 hg email -o -r 3000 DEST # send all ancestors of 3000 not in DEST
221
225
222 hg email -b # send bundle of all patches not in default
226 hg email -b # send bundle of all patches not in default
223 hg email -b DEST # send bundle of all patches not in DEST
227 hg email -b DEST # send bundle of all patches not in DEST
224 hg email -b -r 3000 # bundle of all ancestors of 3000 not in default
228 hg email -b -r 3000 # bundle of all ancestors of 3000 not in default
225 hg email -b -r 3000 DEST # bundle of all ancestors of 3000 not in DEST
229 hg email -b -r 3000 DEST # bundle of all ancestors of 3000 not in DEST
226
230
227 Before using this command, you will need to enable email in your
231 Before using this command, you will need to enable email in your
228 hgrc. See the [email] section in hgrc(5) for details.
232 hgrc. See the [email] section in hgrc(5) for details.
229 '''
233 '''
230
234
231 _charsets = mail._charsets(ui)
235 _charsets = mail._charsets(ui)
232
236
233 def outgoing(dest, revs):
237 def outgoing(dest, revs):
234 '''Return the revisions present locally but not in dest'''
238 '''Return the revisions present locally but not in dest'''
235 dest = ui.expandpath(dest or 'default-push', dest or 'default')
239 dest = ui.expandpath(dest or 'default-push', dest or 'default')
236 dest, branches = hg.parseurl(dest)
240 dest, branches = hg.parseurl(dest)
237 revs, checkout = hg.addbranchrevs(repo, repo, branches, revs)
241 revs, checkout = hg.addbranchrevs(repo, repo, branches, revs)
238 if revs:
242 if revs:
239 revs = [repo.lookup(rev) for rev in revs]
243 revs = [repo.lookup(rev) for rev in revs]
240 other = hg.repository(cmdutil.remoteui(repo, opts), dest)
244 other = hg.repository(cmdutil.remoteui(repo, opts), dest)
241 ui.status(_('comparing with %s\n') % dest)
245 ui.status(_('comparing with %s\n') % dest)
242 o = repo.findoutgoing(other)
246 o = repo.findoutgoing(other)
243 if not o:
247 if not o:
244 ui.status(_("no changes found\n"))
248 ui.status(_("no changes found\n"))
245 return []
249 return []
246 o = repo.changelog.nodesbetween(o, revs)[0]
250 o = repo.changelog.nodesbetween(o, revs)[0]
247 return [str(repo.changelog.rev(r)) for r in o]
251 return [str(repo.changelog.rev(r)) for r in o]
248
252
249 def getpatches(revs):
253 def getpatches(revs):
250 for r in cmdutil.revrange(repo, revs):
254 for r in cmdutil.revrange(repo, revs):
251 output = cStringIO.StringIO()
255 output = cStringIO.StringIO()
252 cmdutil.export(repo, [r], fp=output,
256 cmdutil.export(repo, [r], fp=output,
253 opts=patch.diffopts(ui, opts))
257 opts=patch.diffopts(ui, opts))
254 yield output.getvalue().split('\n')
258 yield output.getvalue().split('\n')
255
259
256 def getbundle(dest):
260 def getbundle(dest):
257 tmpdir = tempfile.mkdtemp(prefix='hg-email-bundle-')
261 tmpdir = tempfile.mkdtemp(prefix='hg-email-bundle-')
258 tmpfn = os.path.join(tmpdir, 'bundle')
262 tmpfn = os.path.join(tmpdir, 'bundle')
259 try:
263 try:
260 commands.bundle(ui, repo, tmpfn, dest, **opts)
264 commands.bundle(ui, repo, tmpfn, dest, **opts)
261 return open(tmpfn, 'rb').read()
265 return open(tmpfn, 'rb').read()
262 finally:
266 finally:
263 try:
267 try:
264 os.unlink(tmpfn)
268 os.unlink(tmpfn)
265 except:
269 except:
266 pass
270 pass
267 os.rmdir(tmpdir)
271 os.rmdir(tmpdir)
268
272
269 if not (opts.get('test') or opts.get('mbox')):
273 if not (opts.get('test') or opts.get('mbox')):
270 # really sending
274 # really sending
271 mail.validateconfig(ui)
275 mail.validateconfig(ui)
272
276
273 if not (revs or opts.get('rev')
277 if not (revs or opts.get('rev')
274 or opts.get('outgoing') or opts.get('bundle')
278 or opts.get('outgoing') or opts.get('bundle')
275 or opts.get('patches')):
279 or opts.get('patches')):
276 raise util.Abort(_('specify at least one changeset with -r or -o'))
280 raise util.Abort(_('specify at least one changeset with -r or -o'))
277
281
278 if opts.get('outgoing') and opts.get('bundle'):
282 if opts.get('outgoing') and opts.get('bundle'):
279 raise util.Abort(_("--outgoing mode always on with --bundle;"
283 raise util.Abort(_("--outgoing mode always on with --bundle;"
280 " do not re-specify --outgoing"))
284 " do not re-specify --outgoing"))
281
285
282 if opts.get('outgoing') or opts.get('bundle'):
286 if opts.get('outgoing') or opts.get('bundle'):
283 if len(revs) > 1:
287 if len(revs) > 1:
284 raise util.Abort(_("too many destinations"))
288 raise util.Abort(_("too many destinations"))
285 dest = revs and revs[0] or None
289 dest = revs and revs[0] or None
286 revs = []
290 revs = []
287
291
288 if opts.get('rev'):
292 if opts.get('rev'):
289 if revs:
293 if revs:
290 raise util.Abort(_('use only one form to specify the revision'))
294 raise util.Abort(_('use only one form to specify the revision'))
291 revs = opts.get('rev')
295 revs = opts.get('rev')
292
296
293 if opts.get('outgoing'):
297 if opts.get('outgoing'):
294 revs = outgoing(dest, opts.get('rev'))
298 revs = outgoing(dest, opts.get('rev'))
295 if opts.get('bundle'):
299 if opts.get('bundle'):
296 opts['revs'] = revs
300 opts['revs'] = revs
297
301
298 # start
302 # start
299 if opts.get('date'):
303 if opts.get('date'):
300 start_time = util.parsedate(opts.get('date'))
304 start_time = util.parsedate(opts.get('date'))
301 else:
305 else:
302 start_time = util.makedate()
306 start_time = util.makedate()
303
307
304 def genmsgid(id):
308 def genmsgid(id):
305 return '<%s.%s@%s>' % (id[:20], int(start_time[0]), socket.getfqdn())
309 return '<%s.%s@%s>' % (id[:20], int(start_time[0]), socket.getfqdn())
306
310
307 def getdescription(body, sender):
311 def getdescription(body, sender):
308 if opts.get('desc'):
312 if opts.get('desc'):
309 body = open(opts.get('desc')).read()
313 body = open(opts.get('desc')).read()
310 else:
314 else:
311 ui.write(_('\nWrite the introductory message for the '
315 ui.write(_('\nWrite the introductory message for the '
312 'patch series.\n\n'))
316 'patch series.\n\n'))
313 body = ui.edit(body, sender)
317 body = ui.edit(body, sender)
314 return body
318 return body
315
319
316 def getpatchmsgs(patches, patchnames=None):
320 def getpatchmsgs(patches, patchnames=None):
317 jumbo = []
321 jumbo = []
318 msgs = []
322 msgs = []
319
323
320 ui.write(_('This patch series consists of %d patches.\n\n')
324 ui.write(_('This patch series consists of %d patches.\n\n')
321 % len(patches))
325 % len(patches))
322
326
323 name = None
327 name = None
324 for i, p in enumerate(patches):
328 for i, p in enumerate(patches):
325 jumbo.extend(p)
329 jumbo.extend(p)
326 if patchnames:
330 if patchnames:
327 name = patchnames[i]
331 name = patchnames[i]
328 msg = makepatch(ui, repo, p, opts, _charsets, i + 1,
332 msg = makepatch(ui, repo, p, opts, _charsets, i + 1,
329 len(patches), name)
333 len(patches), name)
330 msgs.append(msg)
334 msgs.append(msg)
331
335
332 if len(patches) > 1 or opts.get('intro'):
336 if introneeded(opts, len(patches)):
333 tlen = len(str(len(patches)))
337 tlen = len(str(len(patches)))
334
338
335 flag = ' '.join(opts.get('flag'))
339 flag = ' '.join(opts.get('flag'))
336 if flag:
340 if flag:
337 subj = '[PATCH %0*d of %d %s]' % (tlen, 0, len(patches), flag)
341 subj = '[PATCH %0*d of %d %s]' % (tlen, 0, len(patches), flag)
338 else:
342 else:
339 subj = '[PATCH %0*d of %d]' % (tlen, 0, len(patches))
343 subj = '[PATCH %0*d of %d]' % (tlen, 0, len(patches))
340 subj += ' ' + (opts.get('subject') or
344 subj += ' ' + (opts.get('subject') or
341 prompt(ui, 'Subject: ', rest=subj))
345 prompt(ui, 'Subject: ', rest=subj))
342
346
343 body = ''
347 body = ''
344 if opts.get('diffstat'):
348 if opts.get('diffstat'):
345 d = cdiffstat(ui, _('Final summary:\n'), jumbo)
349 d = cdiffstat(ui, _('Final summary:\n'), jumbo)
346 if d:
350 if d:
347 body = '\n' + d
351 body = '\n' + d
348
352
349 body = getdescription(body, sender)
353 body = getdescription(body, sender)
350 msg = mail.mimeencode(ui, body, _charsets, opts.get('test'))
354 msg = mail.mimeencode(ui, body, _charsets, opts.get('test'))
351 msg['Subject'] = mail.headencode(ui, subj, _charsets,
355 msg['Subject'] = mail.headencode(ui, subj, _charsets,
352 opts.get('test'))
356 opts.get('test'))
353
357
354 msgs.insert(0, (msg, subj))
358 msgs.insert(0, (msg, subj))
355 return msgs
359 return msgs
356
360
357 def getbundlemsgs(bundle):
361 def getbundlemsgs(bundle):
358 subj = (opts.get('subject')
362 subj = (opts.get('subject')
359 or prompt(ui, 'Subject:', 'A bundle for your repository'))
363 or prompt(ui, 'Subject:', 'A bundle for your repository'))
360
364
361 body = getdescription('', sender)
365 body = getdescription('', sender)
362 msg = email.MIMEMultipart.MIMEMultipart()
366 msg = email.MIMEMultipart.MIMEMultipart()
363 if body:
367 if body:
364 msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test')))
368 msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test')))
365 datapart = email.MIMEBase.MIMEBase('application', 'x-mercurial-bundle')
369 datapart = email.MIMEBase.MIMEBase('application', 'x-mercurial-bundle')
366 datapart.set_payload(bundle)
370 datapart.set_payload(bundle)
367 bundlename = '%s.hg' % opts.get('bundlename', 'bundle')
371 bundlename = '%s.hg' % opts.get('bundlename', 'bundle')
368 datapart.add_header('Content-Disposition', 'attachment',
372 datapart.add_header('Content-Disposition', 'attachment',
369 filename=bundlename)
373 filename=bundlename)
370 email.Encoders.encode_base64(datapart)
374 email.Encoders.encode_base64(datapart)
371 msg.attach(datapart)
375 msg.attach(datapart)
372 msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test'))
376 msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test'))
373 return [(msg, subj)]
377 return [(msg, subj)]
374
378
375 sender = (opts.get('from') or ui.config('email', 'from') or
379 sender = (opts.get('from') or ui.config('email', 'from') or
376 ui.config('patchbomb', 'from') or
380 ui.config('patchbomb', 'from') or
377 prompt(ui, 'From', ui.username()))
381 prompt(ui, 'From', ui.username()))
378
382
379 # internal option used by pbranches
383 # internal option used by pbranches
380 patches = opts.get('patches')
384 patches = opts.get('patches')
381 if patches:
385 if patches:
382 msgs = getpatchmsgs(patches, opts.get('patchnames'))
386 msgs = getpatchmsgs(patches, opts.get('patchnames'))
383 elif opts.get('bundle'):
387 elif opts.get('bundle'):
384 msgs = getbundlemsgs(getbundle(dest))
388 msgs = getbundlemsgs(getbundle(dest))
385 else:
389 else:
386 msgs = getpatchmsgs(list(getpatches(revs)))
390 msgs = getpatchmsgs(list(getpatches(revs)))
387
391
388 def getaddrs(opt, prpt=None, default=None):
392 def getaddrs(opt, prpt=None, default=None):
389 if opts.get(opt):
393 if opts.get(opt):
390 return mail.addrlistencode(ui, opts.get(opt), _charsets,
394 return mail.addrlistencode(ui, opts.get(opt), _charsets,
391 opts.get('test'))
395 opts.get('test'))
392
396
393 addrs = (ui.config('email', opt) or
397 addrs = (ui.config('email', opt) or
394 ui.config('patchbomb', opt) or '')
398 ui.config('patchbomb', opt) or '')
395 if not addrs and prpt:
399 if not addrs and prpt:
396 addrs = prompt(ui, prpt, default)
400 addrs = prompt(ui, prpt, default)
397
401
398 return mail.addrlistencode(ui, [addrs], _charsets, opts.get('test'))
402 return mail.addrlistencode(ui, [addrs], _charsets, opts.get('test'))
399
403
400 to = getaddrs('to', 'To')
404 to = getaddrs('to', 'To')
401 cc = getaddrs('cc', 'Cc', '')
405 cc = getaddrs('cc', 'Cc', '')
402 bcc = getaddrs('bcc')
406 bcc = getaddrs('bcc')
403
407
404 ui.write('\n')
408 ui.write('\n')
405
409
406 parent = opts.get('in_reply_to') or None
410 parent = opts.get('in_reply_to') or None
407 # angle brackets may be omitted, they're not semantically part of the msg-id
411 # angle brackets may be omitted, they're not semantically part of the msg-id
408 if parent is not None:
412 if parent is not None:
409 if not parent.startswith('<'):
413 if not parent.startswith('<'):
410 parent = '<' + parent
414 parent = '<' + parent
411 if not parent.endswith('>'):
415 if not parent.endswith('>'):
412 parent += '>'
416 parent += '>'
413
417
414 first = True
418 first = True
415
419
416 sender_addr = email.Utils.parseaddr(sender)[1]
420 sender_addr = email.Utils.parseaddr(sender)[1]
417 sender = mail.addressencode(ui, sender, _charsets, opts.get('test'))
421 sender = mail.addressencode(ui, sender, _charsets, opts.get('test'))
418 sendmail = None
422 sendmail = None
419 for m, subj in msgs:
423 for m, subj in msgs:
420 try:
424 try:
421 m['Message-Id'] = genmsgid(m['X-Mercurial-Node'])
425 m['Message-Id'] = genmsgid(m['X-Mercurial-Node'])
422 except TypeError:
426 except TypeError:
423 m['Message-Id'] = genmsgid('patchbomb')
427 m['Message-Id'] = genmsgid('patchbomb')
424 if parent:
428 if parent:
425 m['In-Reply-To'] = parent
429 m['In-Reply-To'] = parent
426 m['References'] = parent
430 m['References'] = parent
427 if first:
431 if first:
428 parent = m['Message-Id']
432 parent = m['Message-Id']
429 first = False
433 first = False
430
434
431 m['User-Agent'] = 'Mercurial-patchbomb/%s' % util.version()
435 m['User-Agent'] = 'Mercurial-patchbomb/%s' % util.version()
432 m['Date'] = email.Utils.formatdate(start_time[0], localtime=True)
436 m['Date'] = email.Utils.formatdate(start_time[0], localtime=True)
433
437
434 start_time = (start_time[0] + 1, start_time[1])
438 start_time = (start_time[0] + 1, start_time[1])
435 m['From'] = sender
439 m['From'] = sender
436 m['To'] = ', '.join(to)
440 m['To'] = ', '.join(to)
437 if cc:
441 if cc:
438 m['Cc'] = ', '.join(cc)
442 m['Cc'] = ', '.join(cc)
439 if bcc:
443 if bcc:
440 m['Bcc'] = ', '.join(bcc)
444 m['Bcc'] = ', '.join(bcc)
441 if opts.get('test'):
445 if opts.get('test'):
442 ui.status(_('Displaying '), subj, ' ...\n')
446 ui.status(_('Displaying '), subj, ' ...\n')
443 ui.flush()
447 ui.flush()
444 if 'PAGER' in os.environ:
448 if 'PAGER' in os.environ:
445 fp = util.popen(os.environ['PAGER'], 'w')
449 fp = util.popen(os.environ['PAGER'], 'w')
446 else:
450 else:
447 fp = ui
451 fp = ui
448 generator = email.Generator.Generator(fp, mangle_from_=False)
452 generator = email.Generator.Generator(fp, mangle_from_=False)
449 try:
453 try:
450 generator.flatten(m, 0)
454 generator.flatten(m, 0)
451 fp.write('\n')
455 fp.write('\n')
452 except IOError, inst:
456 except IOError, inst:
453 if inst.errno != errno.EPIPE:
457 if inst.errno != errno.EPIPE:
454 raise
458 raise
455 if fp is not ui:
459 if fp is not ui:
456 fp.close()
460 fp.close()
457 elif opts.get('mbox'):
461 elif opts.get('mbox'):
458 ui.status(_('Writing '), subj, ' ...\n')
462 ui.status(_('Writing '), subj, ' ...\n')
459 fp = open(opts.get('mbox'), 'In-Reply-To' in m and 'ab+' or 'wb+')
463 fp = open(opts.get('mbox'), 'In-Reply-To' in m and 'ab+' or 'wb+')
460 generator = email.Generator.Generator(fp, mangle_from_=True)
464 generator = email.Generator.Generator(fp, mangle_from_=True)
461 # Should be time.asctime(), but Windows prints 2-characters day
465 # Should be time.asctime(), but Windows prints 2-characters day
462 # of month instead of one. Make them print the same thing.
466 # of month instead of one. Make them print the same thing.
463 date = time.strftime('%a %b %d %H:%M:%S %Y',
467 date = time.strftime('%a %b %d %H:%M:%S %Y',
464 time.localtime(start_time[0]))
468 time.localtime(start_time[0]))
465 fp.write('From %s %s\n' % (sender_addr, date))
469 fp.write('From %s %s\n' % (sender_addr, date))
466 generator.flatten(m, 0)
470 generator.flatten(m, 0)
467 fp.write('\n\n')
471 fp.write('\n\n')
468 fp.close()
472 fp.close()
469 else:
473 else:
470 if not sendmail:
474 if not sendmail:
471 sendmail = mail.connect(ui)
475 sendmail = mail.connect(ui)
472 ui.status(_('Sending '), subj, ' ...\n')
476 ui.status(_('Sending '), subj, ' ...\n')
473 # Exim does not remove the Bcc field
477 # Exim does not remove the Bcc field
474 del m['Bcc']
478 del m['Bcc']
475 fp = cStringIO.StringIO()
479 fp = cStringIO.StringIO()
476 generator = email.Generator.Generator(fp, mangle_from_=False)
480 generator = email.Generator.Generator(fp, mangle_from_=False)
477 generator.flatten(m, 0)
481 generator.flatten(m, 0)
478 sendmail(sender, to + bcc + cc, fp.getvalue())
482 sendmail(sender, to + bcc + cc, fp.getvalue())
479
483
480 emailopts = [
484 emailopts = [
481 ('a', 'attach', None, _('send patches as attachments')),
485 ('a', 'attach', None, _('send patches as attachments')),
482 ('i', 'inline', None, _('send patches as inline attachments')),
486 ('i', 'inline', None, _('send patches as inline attachments')),
483 ('', 'bcc', [], _('email addresses of blind carbon copy recipients')),
487 ('', 'bcc', [], _('email addresses of blind carbon copy recipients')),
484 ('c', 'cc', [], _('email addresses of copy recipients')),
488 ('c', 'cc', [], _('email addresses of copy recipients')),
485 ('d', 'diffstat', None, _('add diffstat output to messages')),
489 ('d', 'diffstat', None, _('add diffstat output to messages')),
486 ('', 'date', '', _('use the given date as the sending date')),
490 ('', 'date', '', _('use the given date as the sending date')),
487 ('', 'desc', '', _('use the given file as the series description')),
491 ('', 'desc', '', _('use the given file as the series description')),
488 ('f', 'from', '', _('email address of sender')),
492 ('f', 'from', '', _('email address of sender')),
489 ('n', 'test', None, _('print messages that would be sent')),
493 ('n', 'test', None, _('print messages that would be sent')),
490 ('m', 'mbox', '',
494 ('m', 'mbox', '',
491 _('write messages to mbox file instead of sending them')),
495 _('write messages to mbox file instead of sending them')),
492 ('s', 'subject', '',
496 ('s', 'subject', '',
493 _('subject of first message (intro or single patch)')),
497 _('subject of first message (intro or single patch)')),
494 ('', 'in-reply-to', '',
498 ('', 'in-reply-to', '',
495 _('message identifier to reply to')),
499 _('message identifier to reply to')),
496 ('', 'flag', [], _('flags to add in subject prefixes')),
500 ('', 'flag', [], _('flags to add in subject prefixes')),
497 ('t', 'to', [], _('email addresses of recipients')),
501 ('t', 'to', [], _('email addresses of recipients')),
498 ]
502 ]
499
503
500
504
501 cmdtable = {
505 cmdtable = {
502 "email":
506 "email":
503 (patchbomb,
507 (patchbomb,
504 [('g', 'git', None, _('use git extended diff format')),
508 [('g', 'git', None, _('use git extended diff format')),
505 ('', 'plain', None, _('omit hg patch header')),
509 ('', 'plain', None, _('omit hg patch header')),
506 ('o', 'outgoing', None,
510 ('o', 'outgoing', None,
507 _('send changes not found in the target repository')),
511 _('send changes not found in the target repository')),
508 ('b', 'bundle', None,
512 ('b', 'bundle', None,
509 _('send changes not in target as a binary bundle')),
513 _('send changes not in target as a binary bundle')),
510 ('', 'bundlename', 'bundle',
514 ('', 'bundlename', 'bundle',
511 _('name of the bundle attachment file')),
515 _('name of the bundle attachment file')),
512 ('r', 'rev', [], _('a revision to send')),
516 ('r', 'rev', [], _('a revision to send')),
513 ('', 'force', None,
517 ('', 'force', None,
514 _('run even when remote repository is unrelated '
518 _('run even when remote repository is unrelated '
515 '(with -b/--bundle)')),
519 '(with -b/--bundle)')),
516 ('', 'base', [],
520 ('', 'base', [],
517 _('a base changeset to specify instead of a destination '
521 _('a base changeset to specify instead of a destination '
518 '(with -b/--bundle)')),
522 '(with -b/--bundle)')),
519 ('', 'intro', None,
523 ('', 'intro', None,
520 _('send an introduction email for a single patch')),
524 _('send an introduction email for a single patch')),
521 ] + emailopts + commands.remoteopts,
525 ] + emailopts + commands.remoteopts,
522 _('hg email [OPTION]... [DEST]...'))
526 _('hg email [OPTION]... [DEST]...'))
523 }
527 }
@@ -1,195 +1,200
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"
130 echo foo > intro.text
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
133
129 echo "% test intro for multiple patches"
134 echo "% test intro for multiple patches"
130 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 \
131 -r 0:1 | fixheaders
136 -r 0:1 | fixheaders
132
137
133 echo "% tagging csets"
138 echo "% tagging csets"
134 hg tag -r0 zero zero.foo
139 hg tag -r0 zero zero.foo
135 hg tag -r1 one one.patch
140 hg tag -r1 one one.patch
136 hg tag -r2 two two.diff
141 hg tag -r2 two two.diff
137
142
138 echo "% test inline for single named patch"
143 echo "% test inline for single named patch"
139 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 2 | \
144 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 2 | \
140 fixheaders
145 fixheaders
141
146
142 echo "% test inline for multiple named/unnamed patches"
147 echo "% test inline for multiple named/unnamed patches"
143 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 0:1 | \
148 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i -r 0:1 | \
144 fixheaders
149 fixheaders
145
150
146 echo "% test inreplyto"
151 echo "% test inreplyto"
147 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
152 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
148 -r tip | fixheaders
153 -r tip | fixheaders
149
154
150 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
155 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
151 -r 0:1 | fixheaders
156 -r 0:1 | fixheaders
152
157
153 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
158 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz \
154 -s test -r 0:1 | fixheaders
159 -s test -r 0:1 | fixheaders
155
160
156 echo "% test single flag for single patch"
161 echo "% test single flag for single patch"
157 hg email --date '1970-1-1 0:1' -n --flag fooFlag -f quux -t foo -c bar -s test \
162 hg email --date '1970-1-1 0:1' -n --flag fooFlag -f quux -t foo -c bar -s test \
158 -r 2 | fixheaders
163 -r 2 | fixheaders
159
164
160 echo "% test single flag for multiple patches"
165 echo "% test single flag for multiple patches"
161 hg email --date '1970-1-1 0:1' -n --flag fooFlag -f quux -t foo -c bar -s test \
166 hg email --date '1970-1-1 0:1' -n --flag fooFlag -f quux -t foo -c bar -s test \
162 -r 0:1 | fixheaders
167 -r 0:1 | fixheaders
163
168
164 echo "% test mutiple flags for single patch"
169 echo "% test mutiple flags for single patch"
165 hg email --date '1970-1-1 0:1' -n --flag fooFlag --flag barFlag -f quux -t foo \
170 hg email --date '1970-1-1 0:1' -n --flag fooFlag --flag barFlag -f quux -t foo \
166 -c bar -s test -r 2 | fixheaders
171 -c bar -s test -r 2 | fixheaders
167
172
168 echo "% test multiple flags for multiple patches"
173 echo "% test multiple flags for multiple patches"
169 hg email --date '1970-1-1 0:1' -n --flag fooFlag --flag barFlag -f quux -t foo \
174 hg email --date '1970-1-1 0:1' -n --flag fooFlag --flag barFlag -f quux -t foo \
170 -c bar -s test -r 0:1 | fixheaders
175 -c bar -s test -r 0:1 | fixheaders
171
176
172 echo "% test multi-address parsing"
177 echo "% test multi-address parsing"
173 hg email --date '1980-1-1 0:1' -m tmp.mbox -f quux -t 'spam<spam><eggs>' \
178 hg email --date '1980-1-1 0:1' -m tmp.mbox -f quux -t 'spam<spam><eggs>' \
174 -t toast -c 'foo,bar@example.com' -c '"A, B <>" <a@example.com>' -s test -r 0 \
179 -t toast -c 'foo,bar@example.com' -c '"A, B <>" <a@example.com>' -s test -r 0 \
175 --config email.bcc='"Quux, A." <quux>'
180 --config email.bcc='"Quux, A." <quux>'
176 cat tmp.mbox | fixheaders
181 cat tmp.mbox | fixheaders
177
182
178 echo "% test multi-byte domain parsing"
183 echo "% test multi-byte domain parsing"
179 UUML=`python -c 'import sys; sys.stdout.write("\374")'`
184 UUML=`python -c 'import sys; sys.stdout.write("\374")'`
180 HGENCODING=iso-8859-1
185 HGENCODING=iso-8859-1
181 export HGENCODING
186 export HGENCODING
182 hg email --date '1980-1-1 0:1' -m tmp.mbox -f quux -t "bar@${UUML}nicode.com" \
187 hg email --date '1980-1-1 0:1' -m tmp.mbox -f quux -t "bar@${UUML}nicode.com" \
183 -s test -r 0
188 -s test -r 0
184 cat tmp.mbox | fixheaders
189 cat tmp.mbox | fixheaders
185
190
186 echo "% test outgoing"
191 echo "% test outgoing"
187 hg up 1
192 hg up 1
188 hg branch test
193 hg branch test
189 echo d > d
194 echo d > d
190 hg add d
195 hg add d
191 hg ci -md -d '4 0'
196 hg ci -md -d '4 0'
192 hg email --date '1980-1-1 0:1' -n -t foo -s test -o ../t | fixheaders
197 hg email --date '1980-1-1 0:1' -n -t foo -s test -o ../t | fixheaders
193
198
194 echo "% dest#branch URIs"
199 echo "% dest#branch URIs"
195 hg email --date '1980-1-1 0:1' -n -t foo -s test -o ../t#test | fixheaders
200 hg email --date '1980-1-1 0:1' -n -t foo -s test -o ../t#test | fixheaders
@@ -1,1840 +1,1886
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
944 This patch series consists of 1 patches.
945
946
947 Displaying [PATCH 0 of 1] test ...
948 Content-Type: text/plain; charset="us-ascii"
949 MIME-Version: 1.0
950 Content-Transfer-Encoding: 7bit
951 Subject: [PATCH 0 of 1] test
952 Message-Id: <patchbomb.60@
953 User-Agent: Mercurial-patchbomb
954 Date: Thu, 01 Jan 1970 00:01:00 +0000
955 From: quux
956 To: foo
957 Cc: bar
958
959 foo
960
961 Displaying [PATCH 1 of 1] c ...
962 Content-Type: text/plain; charset="us-ascii"
963 MIME-Version: 1.0
964 Content-Transfer-Encoding: 7bit
965 Subject: [PATCH 1 of 1] c
966 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
967 Message-Id: <ff2c9fa2018b15fa74b3.61@
968 In-Reply-To: <patchbomb.60@
969 References: <patchbomb.60@
970 User-Agent: Mercurial-patchbomb
971 Date: Thu, 01 Jan 1970 00:01:01 +0000
972 From: quux
973 To: foo
974 Cc: bar
975
976 # HG changeset patch
977 # User test
978 # Date 3 0
979 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
980 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
981 c
982
983 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
984 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
985 +++ b/c Thu Jan 01 00:00:03 1970 +0000
986 @@ -0,0 +1,1 @@
987 +c
988
943 % test intro for multiple patches
989 % test intro for multiple patches
944 This patch series consists of 2 patches.
990 This patch series consists of 2 patches.
945
991
946
992
947 Write the introductory message for the patch series.
993 Write the introductory message for the patch series.
948
994
949
995
950 Displaying [PATCH 0 of 2] test ...
996 Displaying [PATCH 0 of 2] test ...
951 Content-Type: text/plain; charset="us-ascii"
997 Content-Type: text/plain; charset="us-ascii"
952 MIME-Version: 1.0
998 MIME-Version: 1.0
953 Content-Transfer-Encoding: 7bit
999 Content-Transfer-Encoding: 7bit
954 Subject: [PATCH 0 of 2] test
1000 Subject: [PATCH 0 of 2] test
955 Message-Id: <patchbomb.60@
1001 Message-Id: <patchbomb.60@
956 User-Agent: Mercurial-patchbomb
1002 User-Agent: Mercurial-patchbomb
957 Date: Thu, 01 Jan 1970 00:01:00 +0000
1003 Date: Thu, 01 Jan 1970 00:01:00 +0000
958 From: quux
1004 From: quux
959 To: foo
1005 To: foo
960 Cc: bar
1006 Cc: bar
961
1007
962
1008
963 Displaying [PATCH 1 of 2] a ...
1009 Displaying [PATCH 1 of 2] a ...
964 Content-Type: text/plain; charset="us-ascii"
1010 Content-Type: text/plain; charset="us-ascii"
965 MIME-Version: 1.0
1011 MIME-Version: 1.0
966 Content-Transfer-Encoding: 7bit
1012 Content-Transfer-Encoding: 7bit
967 Subject: [PATCH 1 of 2] a
1013 Subject: [PATCH 1 of 2] a
968 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1014 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
969 Message-Id: <8580ff50825a50c8f716.61@
1015 Message-Id: <8580ff50825a50c8f716.61@
970 In-Reply-To: <patchbomb.60@
1016 In-Reply-To: <patchbomb.60@
971 References: <patchbomb.60@
1017 References: <patchbomb.60@
972 User-Agent: Mercurial-patchbomb
1018 User-Agent: Mercurial-patchbomb
973 Date: Thu, 01 Jan 1970 00:01:01 +0000
1019 Date: Thu, 01 Jan 1970 00:01:01 +0000
974 From: quux
1020 From: quux
975 To: foo
1021 To: foo
976 Cc: bar
1022 Cc: bar
977
1023
978 # HG changeset patch
1024 # HG changeset patch
979 # User test
1025 # User test
980 # Date 1 0
1026 # Date 1 0
981 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1027 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
982 # Parent 0000000000000000000000000000000000000000
1028 # Parent 0000000000000000000000000000000000000000
983 a
1029 a
984
1030
985 diff -r 000000000000 -r 8580ff50825a a
1031 diff -r 000000000000 -r 8580ff50825a a
986 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1032 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
987 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1033 +++ b/a Thu Jan 01 00:00:01 1970 +0000
988 @@ -0,0 +1,1 @@
1034 @@ -0,0 +1,1 @@
989 +a
1035 +a
990
1036
991 Displaying [PATCH 2 of 2] b ...
1037 Displaying [PATCH 2 of 2] b ...
992 Content-Type: text/plain; charset="us-ascii"
1038 Content-Type: text/plain; charset="us-ascii"
993 MIME-Version: 1.0
1039 MIME-Version: 1.0
994 Content-Transfer-Encoding: 7bit
1040 Content-Transfer-Encoding: 7bit
995 Subject: [PATCH 2 of 2] b
1041 Subject: [PATCH 2 of 2] b
996 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1042 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
997 Message-Id: <97d72e5f12c7e84f8506.62@
1043 Message-Id: <97d72e5f12c7e84f8506.62@
998 In-Reply-To: <patchbomb.60@
1044 In-Reply-To: <patchbomb.60@
999 References: <patchbomb.60@
1045 References: <patchbomb.60@
1000 User-Agent: Mercurial-patchbomb
1046 User-Agent: Mercurial-patchbomb
1001 Date: Thu, 01 Jan 1970 00:01:02 +0000
1047 Date: Thu, 01 Jan 1970 00:01:02 +0000
1002 From: quux
1048 From: quux
1003 To: foo
1049 To: foo
1004 Cc: bar
1050 Cc: bar
1005
1051
1006 # HG changeset patch
1052 # HG changeset patch
1007 # User test
1053 # User test
1008 # Date 2 0
1054 # Date 2 0
1009 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1055 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1010 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1056 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1011 b
1057 b
1012
1058
1013 diff -r 8580ff50825a -r 97d72e5f12c7 b
1059 diff -r 8580ff50825a -r 97d72e5f12c7 b
1014 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1060 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1015 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1061 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1016 @@ -0,0 +1,1 @@
1062 @@ -0,0 +1,1 @@
1017 +b
1063 +b
1018
1064
1019 % tagging csets
1065 % tagging csets
1020 % test inline for single named patch
1066 % test inline for single named patch
1021 This patch series consists of 1 patches.
1067 This patch series consists of 1 patches.
1022
1068
1023
1069
1024 Displaying [PATCH] test ...
1070 Displaying [PATCH] test ...
1025 Content-Type: multipart/mixed; boundary="===
1071 Content-Type: multipart/mixed; boundary="===
1026 MIME-Version: 1.0
1072 MIME-Version: 1.0
1027 Subject: [PATCH] test
1073 Subject: [PATCH] test
1028 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1074 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1029 Message-Id: <ff2c9fa2018b15fa74b3.60@
1075 Message-Id: <ff2c9fa2018b15fa74b3.60@
1030 User-Agent: Mercurial-patchbomb
1076 User-Agent: Mercurial-patchbomb
1031 Date: Thu, 01 Jan 1970 00:01:00 +0000
1077 Date: Thu, 01 Jan 1970 00:01:00 +0000
1032 From: quux
1078 From: quux
1033 To: foo
1079 To: foo
1034 Cc: bar
1080 Cc: bar
1035
1081
1036 --===
1082 --===
1037 Content-Type: text/x-patch; charset="us-ascii"
1083 Content-Type: text/x-patch; charset="us-ascii"
1038 MIME-Version: 1.0
1084 MIME-Version: 1.0
1039 Content-Transfer-Encoding: 7bit
1085 Content-Transfer-Encoding: 7bit
1040 Content-Disposition: inline; filename=two.diff
1086 Content-Disposition: inline; filename=two.diff
1041
1087
1042 # HG changeset patch
1088 # HG changeset patch
1043 # User test
1089 # User test
1044 # Date 3 0
1090 # Date 3 0
1045 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1091 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1046 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1092 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1047 c
1093 c
1048
1094
1049 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1095 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1050 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1096 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1051 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1097 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1052 @@ -0,0 +1,1 @@
1098 @@ -0,0 +1,1 @@
1053 +c
1099 +c
1054
1100
1055 --===
1101 --===
1056 % test inline for multiple named/unnamed patches
1102 % test inline for multiple named/unnamed patches
1057 This patch series consists of 2 patches.
1103 This patch series consists of 2 patches.
1058
1104
1059
1105
1060 Write the introductory message for the patch series.
1106 Write the introductory message for the patch series.
1061
1107
1062
1108
1063 Displaying [PATCH 0 of 2] test ...
1109 Displaying [PATCH 0 of 2] test ...
1064 Content-Type: text/plain; charset="us-ascii"
1110 Content-Type: text/plain; charset="us-ascii"
1065 MIME-Version: 1.0
1111 MIME-Version: 1.0
1066 Content-Transfer-Encoding: 7bit
1112 Content-Transfer-Encoding: 7bit
1067 Subject: [PATCH 0 of 2] test
1113 Subject: [PATCH 0 of 2] test
1068 Message-Id: <patchbomb.60@
1114 Message-Id: <patchbomb.60@
1069 User-Agent: Mercurial-patchbomb
1115 User-Agent: Mercurial-patchbomb
1070 Date: Thu, 01 Jan 1970 00:01:00 +0000
1116 Date: Thu, 01 Jan 1970 00:01:00 +0000
1071 From: quux
1117 From: quux
1072 To: foo
1118 To: foo
1073 Cc: bar
1119 Cc: bar
1074
1120
1075
1121
1076 Displaying [PATCH 1 of 2] a ...
1122 Displaying [PATCH 1 of 2] a ...
1077 Content-Type: multipart/mixed; boundary="===
1123 Content-Type: multipart/mixed; boundary="===
1078 MIME-Version: 1.0
1124 MIME-Version: 1.0
1079 Subject: [PATCH 1 of 2] a
1125 Subject: [PATCH 1 of 2] a
1080 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1126 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1081 Message-Id: <8580ff50825a50c8f716.61@
1127 Message-Id: <8580ff50825a50c8f716.61@
1082 In-Reply-To: <patchbomb.60@
1128 In-Reply-To: <patchbomb.60@
1083 References: <patchbomb.60@
1129 References: <patchbomb.60@
1084 User-Agent: Mercurial-patchbomb
1130 User-Agent: Mercurial-patchbomb
1085 Date: Thu, 01 Jan 1970 00:01:01 +0000
1131 Date: Thu, 01 Jan 1970 00:01:01 +0000
1086 From: quux
1132 From: quux
1087 To: foo
1133 To: foo
1088 Cc: bar
1134 Cc: bar
1089
1135
1090 --===
1136 --===
1091 Content-Type: text/x-patch; charset="us-ascii"
1137 Content-Type: text/x-patch; charset="us-ascii"
1092 MIME-Version: 1.0
1138 MIME-Version: 1.0
1093 Content-Transfer-Encoding: 7bit
1139 Content-Transfer-Encoding: 7bit
1094 Content-Disposition: inline; filename=t2-1.patch
1140 Content-Disposition: inline; filename=t2-1.patch
1095
1141
1096 # HG changeset patch
1142 # HG changeset patch
1097 # User test
1143 # User test
1098 # Date 1 0
1144 # Date 1 0
1099 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1145 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1100 # Parent 0000000000000000000000000000000000000000
1146 # Parent 0000000000000000000000000000000000000000
1101 a
1147 a
1102
1148
1103 diff -r 000000000000 -r 8580ff50825a a
1149 diff -r 000000000000 -r 8580ff50825a a
1104 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1150 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1105 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1151 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1106 @@ -0,0 +1,1 @@
1152 @@ -0,0 +1,1 @@
1107 +a
1153 +a
1108
1154
1109 --===
1155 --===
1110 Displaying [PATCH 2 of 2] b ...
1156 Displaying [PATCH 2 of 2] b ...
1111 Content-Type: multipart/mixed; boundary="===
1157 Content-Type: multipart/mixed; boundary="===
1112 MIME-Version: 1.0
1158 MIME-Version: 1.0
1113 Subject: [PATCH 2 of 2] b
1159 Subject: [PATCH 2 of 2] b
1114 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1160 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1115 Message-Id: <97d72e5f12c7e84f8506.62@
1161 Message-Id: <97d72e5f12c7e84f8506.62@
1116 In-Reply-To: <patchbomb.60@
1162 In-Reply-To: <patchbomb.60@
1117 References: <patchbomb.60@
1163 References: <patchbomb.60@
1118 User-Agent: Mercurial-patchbomb
1164 User-Agent: Mercurial-patchbomb
1119 Date: Thu, 01 Jan 1970 00:01:02 +0000
1165 Date: Thu, 01 Jan 1970 00:01:02 +0000
1120 From: quux
1166 From: quux
1121 To: foo
1167 To: foo
1122 Cc: bar
1168 Cc: bar
1123
1169
1124 --===
1170 --===
1125 Content-Type: text/x-patch; charset="us-ascii"
1171 Content-Type: text/x-patch; charset="us-ascii"
1126 MIME-Version: 1.0
1172 MIME-Version: 1.0
1127 Content-Transfer-Encoding: 7bit
1173 Content-Transfer-Encoding: 7bit
1128 Content-Disposition: inline; filename=one.patch
1174 Content-Disposition: inline; filename=one.patch
1129
1175
1130 # HG changeset patch
1176 # HG changeset patch
1131 # User test
1177 # User test
1132 # Date 2 0
1178 # Date 2 0
1133 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1179 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1134 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1180 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1135 b
1181 b
1136
1182
1137 diff -r 8580ff50825a -r 97d72e5f12c7 b
1183 diff -r 8580ff50825a -r 97d72e5f12c7 b
1138 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1184 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1139 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1185 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1140 @@ -0,0 +1,1 @@
1186 @@ -0,0 +1,1 @@
1141 +b
1187 +b
1142
1188
1143 --===
1189 --===
1144 % test inreplyto
1190 % test inreplyto
1145 This patch series consists of 1 patches.
1191 This patch series consists of 1 patches.
1146
1192
1147
1193
1148 Displaying [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b ...
1194 Displaying [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b ...
1149 Content-Type: text/plain; charset="us-ascii"
1195 Content-Type: text/plain; charset="us-ascii"
1150 MIME-Version: 1.0
1196 MIME-Version: 1.0
1151 Content-Transfer-Encoding: 7bit
1197 Content-Transfer-Encoding: 7bit
1152 Subject: [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b
1198 Subject: [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b
1153 X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6
1199 X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6
1154 Message-Id: <e317db6a6f288748d1f6.60@
1200 Message-Id: <e317db6a6f288748d1f6.60@
1155 In-Reply-To: <baz>
1201 In-Reply-To: <baz>
1156 References: <baz>
1202 References: <baz>
1157 User-Agent: Mercurial-patchbomb
1203 User-Agent: Mercurial-patchbomb
1158 Date: Thu, 01 Jan 1970 00:01:00 +0000
1204 Date: Thu, 01 Jan 1970 00:01:00 +0000
1159 From: quux
1205 From: quux
1160 To: foo
1206 To: foo
1161 Cc: bar
1207 Cc: bar
1162
1208
1163 # HG changeset patch
1209 # HG changeset patch
1164 # User test
1210 # User test
1165 # Date 0 0
1211 # Date 0 0
1166 # Node ID e317db6a6f288748d1f6cb064f3810fcba66b1b6
1212 # Node ID e317db6a6f288748d1f6cb064f3810fcba66b1b6
1167 # Parent eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1213 # Parent eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1168 Added tag two, two.diff for changeset ff2c9fa2018b
1214 Added tag two, two.diff for changeset ff2c9fa2018b
1169
1215
1170 diff -r eae5fcf795ee -r e317db6a6f28 .hgtags
1216 diff -r eae5fcf795ee -r e317db6a6f28 .hgtags
1171 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
1217 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
1172 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1218 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1173 @@ -2,3 +2,5 @@
1219 @@ -2,3 +2,5 @@
1174 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1220 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1175 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
1221 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
1176 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
1222 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
1177 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two
1223 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two
1178 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff
1224 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff
1179
1225
1180 abort: Subject: [PATCH 0 of 2] Please enter a valid value
1226 abort: Subject: [PATCH 0 of 2] Please enter a valid value
1181 This patch series consists of 2 patches.
1227 This patch series consists of 2 patches.
1182
1228
1183 This patch series consists of 2 patches.
1229 This patch series consists of 2 patches.
1184
1230
1185
1231
1186 Write the introductory message for the patch series.
1232 Write the introductory message for the patch series.
1187
1233
1188
1234
1189 Displaying [PATCH 0 of 2] test ...
1235 Displaying [PATCH 0 of 2] test ...
1190 Content-Type: text/plain; charset="us-ascii"
1236 Content-Type: text/plain; charset="us-ascii"
1191 MIME-Version: 1.0
1237 MIME-Version: 1.0
1192 Content-Transfer-Encoding: 7bit
1238 Content-Transfer-Encoding: 7bit
1193 Subject: [PATCH 0 of 2] test
1239 Subject: [PATCH 0 of 2] test
1194 Message-Id: <patchbomb.60@
1240 Message-Id: <patchbomb.60@
1195 In-Reply-To: <baz>
1241 In-Reply-To: <baz>
1196 References: <baz>
1242 References: <baz>
1197 User-Agent: Mercurial-patchbomb
1243 User-Agent: Mercurial-patchbomb
1198 Date: Thu, 01 Jan 1970 00:01:00 +0000
1244 Date: Thu, 01 Jan 1970 00:01:00 +0000
1199 From: quux
1245 From: quux
1200 To: foo
1246 To: foo
1201 Cc: bar
1247 Cc: bar
1202
1248
1203
1249
1204 Displaying [PATCH 1 of 2] a ...
1250 Displaying [PATCH 1 of 2] a ...
1205 Content-Type: text/plain; charset="us-ascii"
1251 Content-Type: text/plain; charset="us-ascii"
1206 MIME-Version: 1.0
1252 MIME-Version: 1.0
1207 Content-Transfer-Encoding: 7bit
1253 Content-Transfer-Encoding: 7bit
1208 Subject: [PATCH 1 of 2] a
1254 Subject: [PATCH 1 of 2] a
1209 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1255 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1210 Message-Id: <8580ff50825a50c8f716.61@
1256 Message-Id: <8580ff50825a50c8f716.61@
1211 In-Reply-To: <patchbomb.60@
1257 In-Reply-To: <patchbomb.60@
1212 References: <patchbomb.60@
1258 References: <patchbomb.60@
1213 User-Agent: Mercurial-patchbomb
1259 User-Agent: Mercurial-patchbomb
1214 Date: Thu, 01 Jan 1970 00:01:01 +0000
1260 Date: Thu, 01 Jan 1970 00:01:01 +0000
1215 From: quux
1261 From: quux
1216 To: foo
1262 To: foo
1217 Cc: bar
1263 Cc: bar
1218
1264
1219 # HG changeset patch
1265 # HG changeset patch
1220 # User test
1266 # User test
1221 # Date 1 0
1267 # Date 1 0
1222 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1268 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1223 # Parent 0000000000000000000000000000000000000000
1269 # Parent 0000000000000000000000000000000000000000
1224 a
1270 a
1225
1271
1226 diff -r 000000000000 -r 8580ff50825a a
1272 diff -r 000000000000 -r 8580ff50825a a
1227 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1273 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1228 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1274 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1229 @@ -0,0 +1,1 @@
1275 @@ -0,0 +1,1 @@
1230 +a
1276 +a
1231
1277
1232 Displaying [PATCH 2 of 2] b ...
1278 Displaying [PATCH 2 of 2] b ...
1233 Content-Type: text/plain; charset="us-ascii"
1279 Content-Type: text/plain; charset="us-ascii"
1234 MIME-Version: 1.0
1280 MIME-Version: 1.0
1235 Content-Transfer-Encoding: 7bit
1281 Content-Transfer-Encoding: 7bit
1236 Subject: [PATCH 2 of 2] b
1282 Subject: [PATCH 2 of 2] b
1237 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1283 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1238 Message-Id: <97d72e5f12c7e84f8506.62@
1284 Message-Id: <97d72e5f12c7e84f8506.62@
1239 In-Reply-To: <patchbomb.60@
1285 In-Reply-To: <patchbomb.60@
1240 References: <patchbomb.60@
1286 References: <patchbomb.60@
1241 User-Agent: Mercurial-patchbomb
1287 User-Agent: Mercurial-patchbomb
1242 Date: Thu, 01 Jan 1970 00:01:02 +0000
1288 Date: Thu, 01 Jan 1970 00:01:02 +0000
1243 From: quux
1289 From: quux
1244 To: foo
1290 To: foo
1245 Cc: bar
1291 Cc: bar
1246
1292
1247 # HG changeset patch
1293 # HG changeset patch
1248 # User test
1294 # User test
1249 # Date 2 0
1295 # Date 2 0
1250 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1296 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1251 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1297 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1252 b
1298 b
1253
1299
1254 diff -r 8580ff50825a -r 97d72e5f12c7 b
1300 diff -r 8580ff50825a -r 97d72e5f12c7 b
1255 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1301 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1256 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1302 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1257 @@ -0,0 +1,1 @@
1303 @@ -0,0 +1,1 @@
1258 +b
1304 +b
1259
1305
1260 % test single flag for single patch
1306 % test single flag for single patch
1261 This patch series consists of 1 patches.
1307 This patch series consists of 1 patches.
1262
1308
1263
1309
1264 Displaying [PATCH fooFlag] test ...
1310 Displaying [PATCH fooFlag] test ...
1265 Content-Type: text/plain; charset="us-ascii"
1311 Content-Type: text/plain; charset="us-ascii"
1266 MIME-Version: 1.0
1312 MIME-Version: 1.0
1267 Content-Transfer-Encoding: 7bit
1313 Content-Transfer-Encoding: 7bit
1268 Subject: [PATCH fooFlag] test
1314 Subject: [PATCH fooFlag] test
1269 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1315 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1270 Message-Id: <ff2c9fa2018b15fa74b3.60@
1316 Message-Id: <ff2c9fa2018b15fa74b3.60@
1271 User-Agent: Mercurial-patchbomb
1317 User-Agent: Mercurial-patchbomb
1272 Date: Thu, 01 Jan 1970 00:01:00 +0000
1318 Date: Thu, 01 Jan 1970 00:01:00 +0000
1273 From: quux
1319 From: quux
1274 To: foo
1320 To: foo
1275 Cc: bar
1321 Cc: bar
1276
1322
1277 # HG changeset patch
1323 # HG changeset patch
1278 # User test
1324 # User test
1279 # Date 3 0
1325 # Date 3 0
1280 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1326 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1281 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1327 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1282 c
1328 c
1283
1329
1284 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1330 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1285 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1331 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1286 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1332 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1287 @@ -0,0 +1,1 @@
1333 @@ -0,0 +1,1 @@
1288 +c
1334 +c
1289
1335
1290 % test single flag for multiple patches
1336 % test single flag for multiple patches
1291 This patch series consists of 2 patches.
1337 This patch series consists of 2 patches.
1292
1338
1293
1339
1294 Write the introductory message for the patch series.
1340 Write the introductory message for the patch series.
1295
1341
1296
1342
1297 Displaying [PATCH 0 of 2 fooFlag] test ...
1343 Displaying [PATCH 0 of 2 fooFlag] test ...
1298 Content-Type: text/plain; charset="us-ascii"
1344 Content-Type: text/plain; charset="us-ascii"
1299 MIME-Version: 1.0
1345 MIME-Version: 1.0
1300 Content-Transfer-Encoding: 7bit
1346 Content-Transfer-Encoding: 7bit
1301 Subject: [PATCH 0 of 2 fooFlag] test
1347 Subject: [PATCH 0 of 2 fooFlag] test
1302 Message-Id: <patchbomb.60@
1348 Message-Id: <patchbomb.60@
1303 User-Agent: Mercurial-patchbomb
1349 User-Agent: Mercurial-patchbomb
1304 Date: Thu, 01 Jan 1970 00:01:00 +0000
1350 Date: Thu, 01 Jan 1970 00:01:00 +0000
1305 From: quux
1351 From: quux
1306 To: foo
1352 To: foo
1307 Cc: bar
1353 Cc: bar
1308
1354
1309
1355
1310 Displaying [PATCH 1 of 2 fooFlag] a ...
1356 Displaying [PATCH 1 of 2 fooFlag] a ...
1311 Content-Type: text/plain; charset="us-ascii"
1357 Content-Type: text/plain; charset="us-ascii"
1312 MIME-Version: 1.0
1358 MIME-Version: 1.0
1313 Content-Transfer-Encoding: 7bit
1359 Content-Transfer-Encoding: 7bit
1314 Subject: [PATCH 1 of 2 fooFlag] a
1360 Subject: [PATCH 1 of 2 fooFlag] a
1315 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1361 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1316 Message-Id: <8580ff50825a50c8f716.61@
1362 Message-Id: <8580ff50825a50c8f716.61@
1317 In-Reply-To: <patchbomb.60@
1363 In-Reply-To: <patchbomb.60@
1318 References: <patchbomb.60@
1364 References: <patchbomb.60@
1319 User-Agent: Mercurial-patchbomb
1365 User-Agent: Mercurial-patchbomb
1320 Date: Thu, 01 Jan 1970 00:01:01 +0000
1366 Date: Thu, 01 Jan 1970 00:01:01 +0000
1321 From: quux
1367 From: quux
1322 To: foo
1368 To: foo
1323 Cc: bar
1369 Cc: bar
1324
1370
1325 # HG changeset patch
1371 # HG changeset patch
1326 # User test
1372 # User test
1327 # Date 1 0
1373 # Date 1 0
1328 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1374 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1329 # Parent 0000000000000000000000000000000000000000
1375 # Parent 0000000000000000000000000000000000000000
1330 a
1376 a
1331
1377
1332 diff -r 000000000000 -r 8580ff50825a a
1378 diff -r 000000000000 -r 8580ff50825a a
1333 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1379 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1334 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1380 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1335 @@ -0,0 +1,1 @@
1381 @@ -0,0 +1,1 @@
1336 +a
1382 +a
1337
1383
1338 Displaying [PATCH 2 of 2 fooFlag] b ...
1384 Displaying [PATCH 2 of 2 fooFlag] b ...
1339 Content-Type: text/plain; charset="us-ascii"
1385 Content-Type: text/plain; charset="us-ascii"
1340 MIME-Version: 1.0
1386 MIME-Version: 1.0
1341 Content-Transfer-Encoding: 7bit
1387 Content-Transfer-Encoding: 7bit
1342 Subject: [PATCH 2 of 2 fooFlag] b
1388 Subject: [PATCH 2 of 2 fooFlag] b
1343 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1389 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1344 Message-Id: <97d72e5f12c7e84f8506.62@
1390 Message-Id: <97d72e5f12c7e84f8506.62@
1345 In-Reply-To: <patchbomb.60@
1391 In-Reply-To: <patchbomb.60@
1346 References: <patchbomb.60@
1392 References: <patchbomb.60@
1347 User-Agent: Mercurial-patchbomb
1393 User-Agent: Mercurial-patchbomb
1348 Date: Thu, 01 Jan 1970 00:01:02 +0000
1394 Date: Thu, 01 Jan 1970 00:01:02 +0000
1349 From: quux
1395 From: quux
1350 To: foo
1396 To: foo
1351 Cc: bar
1397 Cc: bar
1352
1398
1353 # HG changeset patch
1399 # HG changeset patch
1354 # User test
1400 # User test
1355 # Date 2 0
1401 # Date 2 0
1356 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1402 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1357 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1403 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1358 b
1404 b
1359
1405
1360 diff -r 8580ff50825a -r 97d72e5f12c7 b
1406 diff -r 8580ff50825a -r 97d72e5f12c7 b
1361 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1407 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1362 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1408 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1363 @@ -0,0 +1,1 @@
1409 @@ -0,0 +1,1 @@
1364 +b
1410 +b
1365
1411
1366 % test mutiple flags for single patch
1412 % test mutiple flags for single patch
1367 This patch series consists of 1 patches.
1413 This patch series consists of 1 patches.
1368
1414
1369
1415
1370 Displaying [PATCH fooFlag barFlag] test ...
1416 Displaying [PATCH fooFlag barFlag] test ...
1371 Content-Type: text/plain; charset="us-ascii"
1417 Content-Type: text/plain; charset="us-ascii"
1372 MIME-Version: 1.0
1418 MIME-Version: 1.0
1373 Content-Transfer-Encoding: 7bit
1419 Content-Transfer-Encoding: 7bit
1374 Subject: [PATCH fooFlag barFlag] test
1420 Subject: [PATCH fooFlag barFlag] test
1375 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1421 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1376 Message-Id: <ff2c9fa2018b15fa74b3.60@
1422 Message-Id: <ff2c9fa2018b15fa74b3.60@
1377 User-Agent: Mercurial-patchbomb
1423 User-Agent: Mercurial-patchbomb
1378 Date: Thu, 01 Jan 1970 00:01:00 +0000
1424 Date: Thu, 01 Jan 1970 00:01:00 +0000
1379 From: quux
1425 From: quux
1380 To: foo
1426 To: foo
1381 Cc: bar
1427 Cc: bar
1382
1428
1383 # HG changeset patch
1429 # HG changeset patch
1384 # User test
1430 # User test
1385 # Date 3 0
1431 # Date 3 0
1386 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1432 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1387 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1433 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1388 c
1434 c
1389
1435
1390 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1436 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1391 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1437 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1392 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1438 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1393 @@ -0,0 +1,1 @@
1439 @@ -0,0 +1,1 @@
1394 +c
1440 +c
1395
1441
1396 % test multiple flags for multiple patches
1442 % test multiple flags for multiple patches
1397 This patch series consists of 2 patches.
1443 This patch series consists of 2 patches.
1398
1444
1399
1445
1400 Write the introductory message for the patch series.
1446 Write the introductory message for the patch series.
1401
1447
1402
1448
1403 Displaying [PATCH 0 of 2 fooFlag barFlag] test ...
1449 Displaying [PATCH 0 of 2 fooFlag barFlag] test ...
1404 Content-Type: text/plain; charset="us-ascii"
1450 Content-Type: text/plain; charset="us-ascii"
1405 MIME-Version: 1.0
1451 MIME-Version: 1.0
1406 Content-Transfer-Encoding: 7bit
1452 Content-Transfer-Encoding: 7bit
1407 Subject: [PATCH 0 of 2 fooFlag barFlag] test
1453 Subject: [PATCH 0 of 2 fooFlag barFlag] test
1408 Message-Id: <patchbomb.60@
1454 Message-Id: <patchbomb.60@
1409 User-Agent: Mercurial-patchbomb
1455 User-Agent: Mercurial-patchbomb
1410 Date: Thu, 01 Jan 1970 00:01:00 +0000
1456 Date: Thu, 01 Jan 1970 00:01:00 +0000
1411 From: quux
1457 From: quux
1412 To: foo
1458 To: foo
1413 Cc: bar
1459 Cc: bar
1414
1460
1415
1461
1416 Displaying [PATCH 1 of 2 fooFlag barFlag] a ...
1462 Displaying [PATCH 1 of 2 fooFlag barFlag] a ...
1417 Content-Type: text/plain; charset="us-ascii"
1463 Content-Type: text/plain; charset="us-ascii"
1418 MIME-Version: 1.0
1464 MIME-Version: 1.0
1419 Content-Transfer-Encoding: 7bit
1465 Content-Transfer-Encoding: 7bit
1420 Subject: [PATCH 1 of 2 fooFlag barFlag] a
1466 Subject: [PATCH 1 of 2 fooFlag barFlag] a
1421 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1467 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1422 Message-Id: <8580ff50825a50c8f716.61@
1468 Message-Id: <8580ff50825a50c8f716.61@
1423 In-Reply-To: <patchbomb.60@
1469 In-Reply-To: <patchbomb.60@
1424 References: <patchbomb.60@
1470 References: <patchbomb.60@
1425 User-Agent: Mercurial-patchbomb
1471 User-Agent: Mercurial-patchbomb
1426 Date: Thu, 01 Jan 1970 00:01:01 +0000
1472 Date: Thu, 01 Jan 1970 00:01:01 +0000
1427 From: quux
1473 From: quux
1428 To: foo
1474 To: foo
1429 Cc: bar
1475 Cc: bar
1430
1476
1431 # HG changeset patch
1477 # HG changeset patch
1432 # User test
1478 # User test
1433 # Date 1 0
1479 # Date 1 0
1434 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1480 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1435 # Parent 0000000000000000000000000000000000000000
1481 # Parent 0000000000000000000000000000000000000000
1436 a
1482 a
1437
1483
1438 diff -r 000000000000 -r 8580ff50825a a
1484 diff -r 000000000000 -r 8580ff50825a a
1439 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1485 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1440 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1486 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1441 @@ -0,0 +1,1 @@
1487 @@ -0,0 +1,1 @@
1442 +a
1488 +a
1443
1489
1444 Displaying [PATCH 2 of 2 fooFlag barFlag] b ...
1490 Displaying [PATCH 2 of 2 fooFlag barFlag] b ...
1445 Content-Type: text/plain; charset="us-ascii"
1491 Content-Type: text/plain; charset="us-ascii"
1446 MIME-Version: 1.0
1492 MIME-Version: 1.0
1447 Content-Transfer-Encoding: 7bit
1493 Content-Transfer-Encoding: 7bit
1448 Subject: [PATCH 2 of 2 fooFlag barFlag] b
1494 Subject: [PATCH 2 of 2 fooFlag barFlag] b
1449 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1495 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1450 Message-Id: <97d72e5f12c7e84f8506.62@
1496 Message-Id: <97d72e5f12c7e84f8506.62@
1451 In-Reply-To: <patchbomb.60@
1497 In-Reply-To: <patchbomb.60@
1452 References: <patchbomb.60@
1498 References: <patchbomb.60@
1453 User-Agent: Mercurial-patchbomb
1499 User-Agent: Mercurial-patchbomb
1454 Date: Thu, 01 Jan 1970 00:01:02 +0000
1500 Date: Thu, 01 Jan 1970 00:01:02 +0000
1455 From: quux
1501 From: quux
1456 To: foo
1502 To: foo
1457 Cc: bar
1503 Cc: bar
1458
1504
1459 # HG changeset patch
1505 # HG changeset patch
1460 # User test
1506 # User test
1461 # Date 2 0
1507 # Date 2 0
1462 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1508 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1463 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1509 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1464 b
1510 b
1465
1511
1466 diff -r 8580ff50825a -r 97d72e5f12c7 b
1512 diff -r 8580ff50825a -r 97d72e5f12c7 b
1467 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1513 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1468 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1514 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1469 @@ -0,0 +1,1 @@
1515 @@ -0,0 +1,1 @@
1470 +b
1516 +b
1471
1517
1472 % test multi-address parsing
1518 % test multi-address parsing
1473 This patch series consists of 1 patches.
1519 This patch series consists of 1 patches.
1474
1520
1475
1521
1476 Writing [PATCH] test ...
1522 Writing [PATCH] test ...
1477 From quux Tue Jan 01 00:01:01 1980
1523 From quux Tue Jan 01 00:01:01 1980
1478 Content-Type: text/plain; charset="us-ascii"
1524 Content-Type: text/plain; charset="us-ascii"
1479 MIME-Version: 1.0
1525 MIME-Version: 1.0
1480 Content-Transfer-Encoding: 7bit
1526 Content-Transfer-Encoding: 7bit
1481 Subject: [PATCH] test
1527 Subject: [PATCH] test
1482 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1528 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1483 Message-Id: <8580ff50825a50c8f716.315532860@
1529 Message-Id: <8580ff50825a50c8f716.315532860@
1484 User-Agent: Mercurial-patchbomb
1530 User-Agent: Mercurial-patchbomb
1485 Date: Tue, 01 Jan 1980 00:01:00 +0000
1531 Date: Tue, 01 Jan 1980 00:01:00 +0000
1486 From: quux
1532 From: quux
1487 To: spam <spam>, eggs, toast
1533 To: spam <spam>, eggs, toast
1488 Cc: foo, bar@example.com, "A, B <>" <a@example.com>
1534 Cc: foo, bar@example.com, "A, B <>" <a@example.com>
1489 Bcc: "Quux, A." <quux>
1535 Bcc: "Quux, A." <quux>
1490
1536
1491 # HG changeset patch
1537 # HG changeset patch
1492 # User test
1538 # User test
1493 # Date 1 0
1539 # Date 1 0
1494 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1540 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1495 # Parent 0000000000000000000000000000000000000000
1541 # Parent 0000000000000000000000000000000000000000
1496 a
1542 a
1497
1543
1498 diff -r 000000000000 -r 8580ff50825a a
1544 diff -r 000000000000 -r 8580ff50825a a
1499 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1545 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1500 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1546 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1501 @@ -0,0 +1,1 @@
1547 @@ -0,0 +1,1 @@
1502 +a
1548 +a
1503
1549
1504
1550
1505 % test multi-byte domain parsing
1551 % test multi-byte domain parsing
1506 This patch series consists of 1 patches.
1552 This patch series consists of 1 patches.
1507
1553
1508
1554
1509 Writing [PATCH] test ...
1555 Writing [PATCH] test ...
1510 From quux Tue Jan 01 00:01:01 1980
1556 From quux Tue Jan 01 00:01:01 1980
1511 Content-Type: text/plain; charset="us-ascii"
1557 Content-Type: text/plain; charset="us-ascii"
1512 MIME-Version: 1.0
1558 MIME-Version: 1.0
1513 Content-Transfer-Encoding: 7bit
1559 Content-Transfer-Encoding: 7bit
1514 Subject: [PATCH] test
1560 Subject: [PATCH] test
1515 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1561 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1516 Message-Id: <8580ff50825a50c8f716.315532860@
1562 Message-Id: <8580ff50825a50c8f716.315532860@
1517 User-Agent: Mercurial-patchbomb
1563 User-Agent: Mercurial-patchbomb
1518 Date: Tue, 01 Jan 1980 00:01:00 +0000
1564 Date: Tue, 01 Jan 1980 00:01:00 +0000
1519 From: quux
1565 From: quux
1520 To: bar@xn--nicode-2ya.com
1566 To: bar@xn--nicode-2ya.com
1521
1567
1522 # HG changeset patch
1568 # HG changeset patch
1523 # User test
1569 # User test
1524 # Date 1 0
1570 # Date 1 0
1525 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1571 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1526 # Parent 0000000000000000000000000000000000000000
1572 # Parent 0000000000000000000000000000000000000000
1527 a
1573 a
1528
1574
1529 diff -r 000000000000 -r 8580ff50825a a
1575 diff -r 000000000000 -r 8580ff50825a a
1530 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1576 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1531 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1577 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1532 @@ -0,0 +1,1 @@
1578 @@ -0,0 +1,1 @@
1533 +a
1579 +a
1534
1580
1535
1581
1536 % test outgoing
1582 % test outgoing
1537 0 files updated, 0 files merged, 6 files removed, 0 files unresolved
1583 0 files updated, 0 files merged, 6 files removed, 0 files unresolved
1538 marked working directory as branch test
1584 marked working directory as branch test
1539 created new head
1585 created new head
1540 comparing with ../t
1586 comparing with ../t
1541 searching for changes
1587 searching for changes
1542 This patch series consists of 8 patches.
1588 This patch series consists of 8 patches.
1543
1589
1544
1590
1545 Write the introductory message for the patch series.
1591 Write the introductory message for the patch series.
1546
1592
1547
1593
1548 Displaying [PATCH 0 of 8] test ...
1594 Displaying [PATCH 0 of 8] test ...
1549 Content-Type: text/plain; charset="us-ascii"
1595 Content-Type: text/plain; charset="us-ascii"
1550 MIME-Version: 1.0
1596 MIME-Version: 1.0
1551 Content-Transfer-Encoding: 7bit
1597 Content-Transfer-Encoding: 7bit
1552 Subject: [PATCH 0 of 8] test
1598 Subject: [PATCH 0 of 8] test
1553 Message-Id: <patchbomb.315532860@
1599 Message-Id: <patchbomb.315532860@
1554 User-Agent: Mercurial-patchbomb
1600 User-Agent: Mercurial-patchbomb
1555 Date: Tue, 01 Jan 1980 00:01:00 +0000
1601 Date: Tue, 01 Jan 1980 00:01:00 +0000
1556 From: test
1602 From: test
1557 To: foo
1603 To: foo
1558
1604
1559
1605
1560 Displaying [PATCH 1 of 8] c ...
1606 Displaying [PATCH 1 of 8] c ...
1561 Content-Type: text/plain; charset="us-ascii"
1607 Content-Type: text/plain; charset="us-ascii"
1562 MIME-Version: 1.0
1608 MIME-Version: 1.0
1563 Content-Transfer-Encoding: 7bit
1609 Content-Transfer-Encoding: 7bit
1564 Subject: [PATCH 1 of 8] c
1610 Subject: [PATCH 1 of 8] c
1565 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1611 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1566 Message-Id: <ff2c9fa2018b15fa74b3.315532861@
1612 Message-Id: <ff2c9fa2018b15fa74b3.315532861@
1567 In-Reply-To: <patchbomb.315532860@
1613 In-Reply-To: <patchbomb.315532860@
1568 References: <patchbomb.315532860@
1614 References: <patchbomb.315532860@
1569 User-Agent: Mercurial-patchbomb
1615 User-Agent: Mercurial-patchbomb
1570 Date: Tue, 01 Jan 1980 00:01:01 +0000
1616 Date: Tue, 01 Jan 1980 00:01:01 +0000
1571 From: test
1617 From: test
1572 To: foo
1618 To: foo
1573
1619
1574 # HG changeset patch
1620 # HG changeset patch
1575 # User test
1621 # User test
1576 # Date 3 0
1622 # Date 3 0
1577 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1623 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1578 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1624 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1579 c
1625 c
1580
1626
1581 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1627 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1582 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1628 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1583 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1629 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1584 @@ -0,0 +1,1 @@
1630 @@ -0,0 +1,1 @@
1585 +c
1631 +c
1586
1632
1587 Displaying [PATCH 2 of 8] charset=utf-8; content-transfer-encoding: base64 ...
1633 Displaying [PATCH 2 of 8] charset=utf-8; content-transfer-encoding: base64 ...
1588 Content-Type: text/plain; charset="us-ascii"
1634 Content-Type: text/plain; charset="us-ascii"
1589 MIME-Version: 1.0
1635 MIME-Version: 1.0
1590 Content-Transfer-Encoding: 8bit
1636 Content-Transfer-Encoding: 8bit
1591 Subject: [PATCH 2 of 8] charset=utf-8; content-transfer-encoding: base64
1637 Subject: [PATCH 2 of 8] charset=utf-8; content-transfer-encoding: base64
1592 X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
1638 X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
1593 Message-Id: <c3c9e37db9f4fe4882cd.315532862@
1639 Message-Id: <c3c9e37db9f4fe4882cd.315532862@
1594 In-Reply-To: <patchbomb.315532860@
1640 In-Reply-To: <patchbomb.315532860@
1595 References: <patchbomb.315532860@
1641 References: <patchbomb.315532860@
1596 User-Agent: Mercurial-patchbomb
1642 User-Agent: Mercurial-patchbomb
1597 Date: Tue, 01 Jan 1980 00:01:02 +0000
1643 Date: Tue, 01 Jan 1980 00:01:02 +0000
1598 From: test
1644 From: test
1599 To: foo
1645 To: foo
1600
1646
1601 # HG changeset patch
1647 # HG changeset patch
1602 # User test
1648 # User test
1603 # Date 4 0
1649 # Date 4 0
1604 # Node ID c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
1650 # Node ID c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
1605 # Parent ff2c9fa2018b15fa74b33363bda9527323e2a99f
1651 # Parent ff2c9fa2018b15fa74b33363bda9527323e2a99f
1606 charset=utf-8; content-transfer-encoding: base64
1652 charset=utf-8; content-transfer-encoding: base64
1607
1653
1608 diff -r ff2c9fa2018b -r c3c9e37db9f4 description
1654 diff -r ff2c9fa2018b -r c3c9e37db9f4 description
1609 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1655 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1610 +++ b/description Thu Jan 01 00:00:04 1970 +0000
1656 +++ b/description Thu Jan 01 00:00:04 1970 +0000
1611 @@ -0,0 +1,3 @@
1657 @@ -0,0 +1,3 @@
1612 +a multiline
1658 +a multiline
1613 +
1659 +
1614 +description
1660 +description
1615 diff -r ff2c9fa2018b -r c3c9e37db9f4 utf
1661 diff -r ff2c9fa2018b -r c3c9e37db9f4 utf
1616 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1662 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1617 +++ b/utf Thu Jan 01 00:00:04 1970 +0000
1663 +++ b/utf Thu Jan 01 00:00:04 1970 +0000
1618 @@ -0,0 +1,1 @@
1664 @@ -0,0 +1,1 @@
1619 +hömma!
1665 +hömma!
1620
1666
1621 Displaying [PATCH 3 of 8] charset=utf-8; content-transfer-encoding: quoted-printable ...
1667 Displaying [PATCH 3 of 8] charset=utf-8; content-transfer-encoding: quoted-printable ...
1622 Content-Type: text/plain; charset="us-ascii"
1668 Content-Type: text/plain; charset="us-ascii"
1623 MIME-Version: 1.0
1669 MIME-Version: 1.0
1624 Content-Transfer-Encoding: quoted-printable
1670 Content-Transfer-Encoding: quoted-printable
1625 Subject: [PATCH 3 of 8] charset=utf-8;
1671 Subject: [PATCH 3 of 8] charset=utf-8;
1626 content-transfer-encoding: quoted-printable
1672 content-transfer-encoding: quoted-printable
1627 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
1673 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
1628 Message-Id: <c655633f8c87700bb38c.315532863@
1674 Message-Id: <c655633f8c87700bb38c.315532863@
1629 In-Reply-To: <patchbomb.315532860@
1675 In-Reply-To: <patchbomb.315532860@
1630 References: <patchbomb.315532860@
1676 References: <patchbomb.315532860@
1631 User-Agent: Mercurial-patchbomb
1677 User-Agent: Mercurial-patchbomb
1632 Date: Tue, 01 Jan 1980 00:01:03 +0000
1678 Date: Tue, 01 Jan 1980 00:01:03 +0000
1633 From: test
1679 From: test
1634 To: foo
1680 To: foo
1635
1681
1636 # HG changeset patch
1682 # HG changeset patch
1637 # User test
1683 # User test
1638 # Date 4 0
1684 # Date 4 0
1639 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
1685 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
1640 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
1686 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
1641 charset=3Dutf-8; content-transfer-encoding: quoted-printable
1687 charset=3Dutf-8; content-transfer-encoding: quoted-printable
1642
1688
1643 diff -r c3c9e37db9f4 -r c655633f8c87 qp
1689 diff -r c3c9e37db9f4 -r c655633f8c87 qp
1644 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1690 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1645 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
1691 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
1646 @@ -0,0 +1,4 @@
1692 @@ -0,0 +1,4 @@
1647 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1693 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1648 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1694 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1649 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1695 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1650 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1696 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1651 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1697 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1652 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1698 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1653 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1699 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1654 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1700 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1655 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1701 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1656 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1702 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1657 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1703 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1658 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1704 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1659 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1705 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
1660 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1706 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1661 +foo
1707 +foo
1662 +
1708 +
1663 +bar
1709 +bar
1664
1710
1665 Displaying [PATCH 4 of 8] charset=us-ascii; content-transfer-encoding: 8bit ...
1711 Displaying [PATCH 4 of 8] charset=us-ascii; content-transfer-encoding: 8bit ...
1666 Content-Type: text/plain; charset="us-ascii"
1712 Content-Type: text/plain; charset="us-ascii"
1667 MIME-Version: 1.0
1713 MIME-Version: 1.0
1668 Content-Transfer-Encoding: 8bit
1714 Content-Transfer-Encoding: 8bit
1669 Subject: [PATCH 4 of 8] charset=us-ascii; content-transfer-encoding: 8bit
1715 Subject: [PATCH 4 of 8] charset=us-ascii; content-transfer-encoding: 8bit
1670 X-Mercurial-Node: 22d0f96be12f5945fd67d101af58f7bc8263c835
1716 X-Mercurial-Node: 22d0f96be12f5945fd67d101af58f7bc8263c835
1671 Message-Id: <22d0f96be12f5945fd67.315532864@
1717 Message-Id: <22d0f96be12f5945fd67.315532864@
1672 In-Reply-To: <patchbomb.315532860@
1718 In-Reply-To: <patchbomb.315532860@
1673 References: <patchbomb.315532860@
1719 References: <patchbomb.315532860@
1674 User-Agent: Mercurial-patchbomb
1720 User-Agent: Mercurial-patchbomb
1675 Date: Tue, 01 Jan 1980 00:01:04 +0000
1721 Date: Tue, 01 Jan 1980 00:01:04 +0000
1676 From: test
1722 From: test
1677 To: foo
1723 To: foo
1678
1724
1679 # HG changeset patch
1725 # HG changeset patch
1680 # User test
1726 # User test
1681 # Date 5 0
1727 # Date 5 0
1682 # Node ID 22d0f96be12f5945fd67d101af58f7bc8263c835
1728 # Node ID 22d0f96be12f5945fd67d101af58f7bc8263c835
1683 # Parent c655633f8c87700bb38cc6a59a2753bdc5a6c376
1729 # Parent c655633f8c87700bb38cc6a59a2753bdc5a6c376
1684 charset=us-ascii; content-transfer-encoding: 8bit
1730 charset=us-ascii; content-transfer-encoding: 8bit
1685
1731
1686 diff -r c655633f8c87 -r 22d0f96be12f isolatin
1732 diff -r c655633f8c87 -r 22d0f96be12f isolatin
1687 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1733 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1688 +++ b/isolatin Thu Jan 01 00:00:05 1970 +0000
1734 +++ b/isolatin Thu Jan 01 00:00:05 1970 +0000
1689 @@ -0,0 +1,1 @@
1735 @@ -0,0 +1,1 @@
1690 +h�mma!
1736 +h�mma!
1691
1737
1692 Displaying [PATCH 5 of 8] Added tag zero, zero.foo for changeset 8580ff50825a ...
1738 Displaying [PATCH 5 of 8] Added tag zero, zero.foo for changeset 8580ff50825a ...
1693 Content-Type: text/plain; charset="us-ascii"
1739 Content-Type: text/plain; charset="us-ascii"
1694 MIME-Version: 1.0
1740 MIME-Version: 1.0
1695 Content-Transfer-Encoding: 7bit
1741 Content-Transfer-Encoding: 7bit
1696 Subject: [PATCH 5 of 8] Added tag zero, zero.foo for changeset 8580ff50825a
1742 Subject: [PATCH 5 of 8] Added tag zero, zero.foo for changeset 8580ff50825a
1697 X-Mercurial-Node: dd9c2b4b8a8a0934d5523c15f2c119b362360903
1743 X-Mercurial-Node: dd9c2b4b8a8a0934d5523c15f2c119b362360903
1698 Message-Id: <dd9c2b4b8a8a0934d552.315532865@
1744 Message-Id: <dd9c2b4b8a8a0934d552.315532865@
1699 In-Reply-To: <patchbomb.315532860@
1745 In-Reply-To: <patchbomb.315532860@
1700 References: <patchbomb.315532860@
1746 References: <patchbomb.315532860@
1701 User-Agent: Mercurial-patchbomb
1747 User-Agent: Mercurial-patchbomb
1702 Date: Tue, 01 Jan 1980 00:01:05 +0000
1748 Date: Tue, 01 Jan 1980 00:01:05 +0000
1703 From: test
1749 From: test
1704 To: foo
1750 To: foo
1705
1751
1706 # HG changeset patch
1752 # HG changeset patch
1707 # User test
1753 # User test
1708 # Date 0 0
1754 # Date 0 0
1709 # Node ID dd9c2b4b8a8a0934d5523c15f2c119b362360903
1755 # Node ID dd9c2b4b8a8a0934d5523c15f2c119b362360903
1710 # Parent 22d0f96be12f5945fd67d101af58f7bc8263c835
1756 # Parent 22d0f96be12f5945fd67d101af58f7bc8263c835
1711 Added tag zero, zero.foo for changeset 8580ff50825a
1757 Added tag zero, zero.foo for changeset 8580ff50825a
1712
1758
1713 diff -r 22d0f96be12f -r dd9c2b4b8a8a .hgtags
1759 diff -r 22d0f96be12f -r dd9c2b4b8a8a .hgtags
1714 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1760 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1715 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1761 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1716 @@ -0,0 +1,2 @@
1762 @@ -0,0 +1,2 @@
1717 +8580ff50825a50c8f716709acdf8de0deddcd6ab zero
1763 +8580ff50825a50c8f716709acdf8de0deddcd6ab zero
1718 +8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1764 +8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1719
1765
1720 Displaying [PATCH 6 of 8] Added tag one, one.patch for changeset 97d72e5f12c7 ...
1766 Displaying [PATCH 6 of 8] Added tag one, one.patch for changeset 97d72e5f12c7 ...
1721 Content-Type: text/plain; charset="us-ascii"
1767 Content-Type: text/plain; charset="us-ascii"
1722 MIME-Version: 1.0
1768 MIME-Version: 1.0
1723 Content-Transfer-Encoding: 7bit
1769 Content-Transfer-Encoding: 7bit
1724 Subject: [PATCH 6 of 8] Added tag one, one.patch for changeset 97d72e5f12c7
1770 Subject: [PATCH 6 of 8] Added tag one, one.patch for changeset 97d72e5f12c7
1725 X-Mercurial-Node: eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1771 X-Mercurial-Node: eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1726 Message-Id: <eae5fcf795eee29d0e45.315532866@
1772 Message-Id: <eae5fcf795eee29d0e45.315532866@
1727 In-Reply-To: <patchbomb.315532860@
1773 In-Reply-To: <patchbomb.315532860@
1728 References: <patchbomb.315532860@
1774 References: <patchbomb.315532860@
1729 User-Agent: Mercurial-patchbomb
1775 User-Agent: Mercurial-patchbomb
1730 Date: Tue, 01 Jan 1980 00:01:06 +0000
1776 Date: Tue, 01 Jan 1980 00:01:06 +0000
1731 From: test
1777 From: test
1732 To: foo
1778 To: foo
1733
1779
1734 # HG changeset patch
1780 # HG changeset patch
1735 # User test
1781 # User test
1736 # Date 0 0
1782 # Date 0 0
1737 # Node ID eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1783 # Node ID eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1738 # Parent dd9c2b4b8a8a0934d5523c15f2c119b362360903
1784 # Parent dd9c2b4b8a8a0934d5523c15f2c119b362360903
1739 Added tag one, one.patch for changeset 97d72e5f12c7
1785 Added tag one, one.patch for changeset 97d72e5f12c7
1740
1786
1741 diff -r dd9c2b4b8a8a -r eae5fcf795ee .hgtags
1787 diff -r dd9c2b4b8a8a -r eae5fcf795ee .hgtags
1742 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
1788 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
1743 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1789 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1744 @@ -1,2 +1,4 @@
1790 @@ -1,2 +1,4 @@
1745 8580ff50825a50c8f716709acdf8de0deddcd6ab zero
1791 8580ff50825a50c8f716709acdf8de0deddcd6ab zero
1746 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1792 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1747 +97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
1793 +97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
1748 +97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
1794 +97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
1749
1795
1750 Displaying [PATCH 7 of 8] Added tag two, two.diff for changeset ff2c9fa2018b ...
1796 Displaying [PATCH 7 of 8] Added tag two, two.diff for changeset ff2c9fa2018b ...
1751 Content-Type: text/plain; charset="us-ascii"
1797 Content-Type: text/plain; charset="us-ascii"
1752 MIME-Version: 1.0
1798 MIME-Version: 1.0
1753 Content-Transfer-Encoding: 7bit
1799 Content-Transfer-Encoding: 7bit
1754 Subject: [PATCH 7 of 8] Added tag two, two.diff for changeset ff2c9fa2018b
1800 Subject: [PATCH 7 of 8] Added tag two, two.diff for changeset ff2c9fa2018b
1755 X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6
1801 X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6
1756 Message-Id: <e317db6a6f288748d1f6.315532867@
1802 Message-Id: <e317db6a6f288748d1f6.315532867@
1757 In-Reply-To: <patchbomb.315532860@
1803 In-Reply-To: <patchbomb.315532860@
1758 References: <patchbomb.315532860@
1804 References: <patchbomb.315532860@
1759 User-Agent: Mercurial-patchbomb
1805 User-Agent: Mercurial-patchbomb
1760 Date: Tue, 01 Jan 1980 00:01:07 +0000
1806 Date: Tue, 01 Jan 1980 00:01:07 +0000
1761 From: test
1807 From: test
1762 To: foo
1808 To: foo
1763
1809
1764 # HG changeset patch
1810 # HG changeset patch
1765 # User test
1811 # User test
1766 # Date 0 0
1812 # Date 0 0
1767 # Node ID e317db6a6f288748d1f6cb064f3810fcba66b1b6
1813 # Node ID e317db6a6f288748d1f6cb064f3810fcba66b1b6
1768 # Parent eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1814 # Parent eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
1769 Added tag two, two.diff for changeset ff2c9fa2018b
1815 Added tag two, two.diff for changeset ff2c9fa2018b
1770
1816
1771 diff -r eae5fcf795ee -r e317db6a6f28 .hgtags
1817 diff -r eae5fcf795ee -r e317db6a6f28 .hgtags
1772 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
1818 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
1773 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1819 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1774 @@ -2,3 +2,5 @@
1820 @@ -2,3 +2,5 @@
1775 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1821 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1776 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
1822 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
1777 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
1823 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
1778 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two
1824 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two
1779 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff
1825 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff
1780
1826
1781 Displaying [PATCH 8 of 8] d ...
1827 Displaying [PATCH 8 of 8] d ...
1782 Content-Type: text/plain; charset="us-ascii"
1828 Content-Type: text/plain; charset="us-ascii"
1783 MIME-Version: 1.0
1829 MIME-Version: 1.0
1784 Content-Transfer-Encoding: 7bit
1830 Content-Transfer-Encoding: 7bit
1785 Subject: [PATCH 8 of 8] d
1831 Subject: [PATCH 8 of 8] d
1786 X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1832 X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1787 Message-Id: <2f9fa9b998c5fe3ac2bd.315532868@
1833 Message-Id: <2f9fa9b998c5fe3ac2bd.315532868@
1788 In-Reply-To: <patchbomb.315532860@
1834 In-Reply-To: <patchbomb.315532860@
1789 References: <patchbomb.315532860@
1835 References: <patchbomb.315532860@
1790 User-Agent: Mercurial-patchbomb
1836 User-Agent: Mercurial-patchbomb
1791 Date: Tue, 01 Jan 1980 00:01:08 +0000
1837 Date: Tue, 01 Jan 1980 00:01:08 +0000
1792 From: test
1838 From: test
1793 To: foo
1839 To: foo
1794
1840
1795 # HG changeset patch
1841 # HG changeset patch
1796 # User test
1842 # User test
1797 # Date 4 0
1843 # Date 4 0
1798 # Branch test
1844 # Branch test
1799 # Node ID 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1845 # Node ID 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1800 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1846 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1801 d
1847 d
1802
1848
1803 diff -r 97d72e5f12c7 -r 2f9fa9b998c5 d
1849 diff -r 97d72e5f12c7 -r 2f9fa9b998c5 d
1804 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1850 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1805 +++ b/d Thu Jan 01 00:00:04 1970 +0000
1851 +++ b/d Thu Jan 01 00:00:04 1970 +0000
1806 @@ -0,0 +1,1 @@
1852 @@ -0,0 +1,1 @@
1807 +d
1853 +d
1808
1854
1809 % dest#branch URIs
1855 % dest#branch URIs
1810 comparing with ../t
1856 comparing with ../t
1811 searching for changes
1857 searching for changes
1812 This patch series consists of 1 patches.
1858 This patch series consists of 1 patches.
1813
1859
1814
1860
1815 Displaying [PATCH] test ...
1861 Displaying [PATCH] test ...
1816 Content-Type: text/plain; charset="us-ascii"
1862 Content-Type: text/plain; charset="us-ascii"
1817 MIME-Version: 1.0
1863 MIME-Version: 1.0
1818 Content-Transfer-Encoding: 7bit
1864 Content-Transfer-Encoding: 7bit
1819 Subject: [PATCH] test
1865 Subject: [PATCH] test
1820 X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1866 X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1821 Message-Id: <2f9fa9b998c5fe3ac2bd.315532860@
1867 Message-Id: <2f9fa9b998c5fe3ac2bd.315532860@
1822 User-Agent: Mercurial-patchbomb
1868 User-Agent: Mercurial-patchbomb
1823 Date: Tue, 01 Jan 1980 00:01:00 +0000
1869 Date: Tue, 01 Jan 1980 00:01:00 +0000
1824 From: test
1870 From: test
1825 To: foo
1871 To: foo
1826
1872
1827 # HG changeset patch
1873 # HG changeset patch
1828 # User test
1874 # User test
1829 # Date 4 0
1875 # Date 4 0
1830 # Branch test
1876 # Branch test
1831 # Node ID 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1877 # Node ID 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
1832 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1878 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1833 d
1879 d
1834
1880
1835 diff -r 97d72e5f12c7 -r 2f9fa9b998c5 d
1881 diff -r 97d72e5f12c7 -r 2f9fa9b998c5 d
1836 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1882 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1837 +++ b/d Thu Jan 01 00:00:04 1970 +0000
1883 +++ b/d Thu Jan 01 00:00:04 1970 +0000
1838 @@ -0,0 +1,1 @@
1884 @@ -0,0 +1,1 @@
1839 +d
1885 +d
1840
1886
General Comments 0
You need to be logged in to leave comments. Login now