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