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