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