Show More
@@ -1,505 +1,505 b'' | |||||
1 | # patchbomb.py - sending Mercurial changesets as patch emails |
|
1 | # patchbomb.py - sending Mercurial changesets as patch emails | |
2 | # |
|
2 | # | |
3 | # Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others |
|
3 | # Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others | |
4 | # |
|
4 | # | |
5 | # This software may be used and distributed according to the terms of the |
|
5 | # This software may be used and distributed according to the terms of the | |
6 | # GNU General Public License version 2, incorporated herein by reference. |
|
6 | # GNU General Public License version 2, incorporated herein by reference. | |
7 |
|
7 | |||
8 | '''sending Mercurial changesets as a series of patch emails |
|
8 | '''sending Mercurial 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 |
|
18 | |||
19 | [Optional] The result of running diffstat on the patch. |
|
19 | [Optional] The result of running diffstat on the patch. | |
20 |
|
20 | |||
21 | The patch itself, as generated by "hg export". |
|
21 | The patch itself, as generated by "hg export". | |
22 |
|
22 | |||
23 | Each message refers to the first in the series using the In-Reply-To |
|
23 | Each message refers to the first in the series using the In-Reply-To | |
24 | and References headers, so they will show up as a sequence in threaded |
|
24 | and References headers, so they will show up as a sequence in threaded | |
25 | mail and news readers, and in mail archives. |
|
25 | mail and news readers, and in mail archives. | |
26 |
|
26 | |||
27 | With the -d/--diffstat option, you will be prompted for each changeset |
|
27 | With the -d/--diffstat option, you will be prompted for each changeset | |
28 | with a diffstat summary and the changeset summary, so you can be sure |
|
28 | with a diffstat summary and the changeset summary, so you can be sure | |
29 | you are sending the right changes. |
|
29 | you are sending the right changes. | |
30 |
|
30 | |||
31 | To enable this extension: |
|
31 | To enable this extension: | |
32 |
|
32 | |||
33 | [extensions] |
|
33 | [extensions] | |
34 | hgext.patchbomb = |
|
34 | hgext.patchbomb = | |
35 |
|
35 | |||
36 | To configure other defaults, add a section like this to your hgrc |
|
36 | To configure other defaults, add a section like this to your hgrc | |
37 | file: |
|
37 | file: | |
38 |
|
38 | |||
39 | [email] |
|
39 | [email] | |
40 | from = My Name <my@email> |
|
40 | from = My Name <my@email> | |
41 | to = recipient1, recipient2, ... |
|
41 | to = recipient1, recipient2, ... | |
42 | cc = cc1, cc2, ... |
|
42 | cc = cc1, cc2, ... | |
43 | bcc = bcc1, bcc2, ... |
|
43 | bcc = bcc1, bcc2, ... | |
44 |
|
44 | |||
45 | Then you can use the "hg email" command to mail a series of changesets |
|
45 | Then you can use the "hg email" command to mail a series of changesets | |
46 | as a patchbomb. |
|
46 | as a patchbomb. | |
47 |
|
47 | |||
48 | To avoid sending patches prematurely, it is a good idea to first run |
|
48 | To avoid sending patches prematurely, it is a good idea to first run | |
49 | the "email" command with the "-n" option (test only). You will be |
|
49 | the "email" command with the "-n" option (test only). You will be | |
50 | prompted for an email recipient address, a subject and an introductory |
|
50 | prompted for an email recipient address, a subject and an introductory | |
51 | message describing the patches of your patchbomb. Then when all is |
|
51 | message describing the patches of your patchbomb. Then when all is | |
52 | done, patchbomb messages are displayed. If the PAGER environment |
|
52 | done, patchbomb messages are displayed. If the PAGER environment | |
53 | variable is set, your pager will be fired up once for each patchbomb |
|
53 | variable is set, your pager will be fired up once for each patchbomb | |
54 | message, so you can verify everything is alright. |
|
54 | message, so you can verify everything is alright. | |
55 |
|
55 | |||
56 | The -m/--mbox option is also very useful. Instead of previewing each |
|
56 | The -m/--mbox option is also very useful. Instead of previewing each | |
57 | patchbomb message in a pager or sending the messages directly, it will |
|
57 | patchbomb message in a pager or sending the messages directly, it will | |
58 | create a UNIX mailbox file with the patch emails. This mailbox file |
|
58 | create a UNIX mailbox file with the patch emails. This mailbox file | |
59 | can be previewed with any mail user agent which supports UNIX mbox |
|
59 | can be previewed with any mail user agent which supports UNIX mbox | |
60 | files, e.g. with mutt: |
|
60 | files, e.g. with mutt: | |
61 |
|
61 | |||
62 | % mutt -R -f mbox |
|
62 | % mutt -R -f mbox | |
63 |
|
63 | |||
64 | When you are previewing the patchbomb messages, you can use `formail' |
|
64 | When you are previewing the patchbomb messages, you can use `formail' | |
65 | (a utility that is commonly installed as part of the procmail |
|
65 | (a utility that is commonly installed as part of the procmail | |
66 | package), to send each message out: |
|
66 | package), to send each message out: | |
67 |
|
67 | |||
68 | % formail -s sendmail -bm -t < mbox |
|
68 | % formail -s sendmail -bm -t < mbox | |
69 |
|
69 | |||
70 | That should be all. Now your patchbomb is on its way out. |
|
70 | That should be all. Now your patchbomb is on its way out. | |
71 |
|
71 | |||
72 | You can also either configure the method option in the email section |
|
72 | You can also either configure the method option in the email section | |
73 | to be a sendmail compatible mailer or fill out the [smtp] section so |
|
73 | to be a sendmail compatible mailer or fill out the [smtp] section so | |
74 | that the patchbomb extension can automatically send patchbombs |
|
74 | that the patchbomb extension can automatically send patchbombs | |
75 | directly from the commandline. See the [email] and [smtp] sections in |
|
75 | directly from the commandline. See the [email] and [smtp] sections in | |
76 | hgrc(5) for details.''' |
|
76 | hgrc(5) for details.''' | |
77 |
|
77 | |||
78 | import os, errno, socket, tempfile, cStringIO |
|
78 | import os, errno, socket, tempfile, cStringIO | |
79 | import email.MIMEMultipart, email.MIMEBase |
|
79 | import email.MIMEMultipart, email.MIMEBase | |
80 | import email.Utils, email.Encoders, email.Generator |
|
80 | import email.Utils, email.Encoders, email.Generator | |
81 | from mercurial import cmdutil, commands, hg, mail, patch, util |
|
81 | from mercurial import cmdutil, commands, hg, mail, patch, util | |
82 | from mercurial.i18n import _ |
|
82 | from mercurial.i18n import _ | |
83 | from mercurial.node import bin |
|
83 | from mercurial.node import bin | |
84 |
|
84 | |||
85 | def prompt(ui, prompt, default=None, rest=': ', empty_ok=False): |
|
85 | def prompt(ui, prompt, default=None, rest=': ', empty_ok=False): | |
86 | if not ui.interactive(): |
|
86 | if not ui.interactive(): | |
87 | return default |
|
87 | return default | |
88 | if default: |
|
88 | if default: | |
89 | prompt += ' [%s]' % default |
|
89 | prompt += ' [%s]' % default | |
90 | prompt += rest |
|
90 | prompt += rest | |
91 | while True: |
|
91 | while True: | |
92 | r = ui.prompt(prompt, default=default) |
|
92 | r = ui.prompt(prompt, default=default) | |
93 | if r: |
|
93 | if r: | |
94 | return r |
|
94 | return r | |
95 | if default is not None: |
|
95 | if default is not None: | |
96 | return default |
|
96 | return default | |
97 | if empty_ok: |
|
97 | if empty_ok: | |
98 | return r |
|
98 | return r | |
99 | ui.warn(_('Please enter a valid value.\n')) |
|
99 | ui.warn(_('Please enter a valid value.\n')) | |
100 |
|
100 | |||
101 | def cdiffstat(ui, summary, patchlines): |
|
101 | def cdiffstat(ui, summary, patchlines): | |
102 | s = patch.diffstat(patchlines) |
|
102 | s = patch.diffstat(patchlines) | |
103 | if summary: |
|
103 | if summary: | |
104 | ui.write(summary, '\n') |
|
104 | ui.write(summary, '\n') | |
105 | ui.write(s, '\n') |
|
105 | ui.write(s, '\n') | |
106 | ans = prompt(ui, _('does the diffstat above look okay? '), 'y') |
|
106 | ans = prompt(ui, _('does the diffstat above look okay? '), 'y') | |
107 | if not ans.lower().startswith('y'): |
|
107 | if not ans.lower().startswith('y'): | |
108 | raise util.Abort(_('diffstat rejected')) |
|
108 | raise util.Abort(_('diffstat rejected')) | |
109 | return s |
|
109 | return s | |
110 |
|
110 | |||
111 | def makepatch(ui, repo, patch, opts, _charsets, idx, total, patchname=None): |
|
111 | def makepatch(ui, repo, patch, opts, _charsets, idx, total, patchname=None): | |
112 |
|
112 | |||
113 | desc = [] |
|
113 | desc = [] | |
114 | node = None |
|
114 | node = None | |
115 | body = '' |
|
115 | body = '' | |
116 |
|
116 | |||
117 | for line in patch: |
|
117 | for line in patch: | |
118 | if line.startswith('#'): |
|
118 | if line.startswith('#'): | |
119 | if line.startswith('# Node ID'): |
|
119 | if line.startswith('# Node ID'): | |
120 | node = line.split()[-1] |
|
120 | node = line.split()[-1] | |
121 | continue |
|
121 | continue | |
122 | if line.startswith('diff -r') or line.startswith('diff --git'): |
|
122 | if line.startswith('diff -r') or line.startswith('diff --git'): | |
123 | break |
|
123 | break | |
124 | desc.append(line) |
|
124 | desc.append(line) | |
125 |
|
125 | |||
126 | if not patchname and not node: |
|
126 | if not patchname and not node: | |
127 | raise ValueError |
|
127 | raise ValueError | |
128 |
|
128 | |||
129 | if opts.get('attach'): |
|
129 | if opts.get('attach'): | |
130 | body = ('\n'.join(desc[1:]).strip() or |
|
130 | body = ('\n'.join(desc[1:]).strip() or | |
131 | 'Patch subject is complete summary.') |
|
131 | 'Patch subject is complete summary.') | |
132 | body += '\n\n\n' |
|
132 | body += '\n\n\n' | |
133 |
|
133 | |||
134 | if opts.get('plain'): |
|
134 | if opts.get('plain'): | |
135 | while patch and patch[0].startswith('# '): |
|
135 | while patch and patch[0].startswith('# '): | |
136 | patch.pop(0) |
|
136 | patch.pop(0) | |
137 | if patch: |
|
137 | if patch: | |
138 | patch.pop(0) |
|
138 | patch.pop(0) | |
139 | while patch and not patch[0].strip(): |
|
139 | while patch and not patch[0].strip(): | |
140 | patch.pop(0) |
|
140 | patch.pop(0) | |
141 |
|
141 | |||
142 | if opts.get('diffstat'): |
|
142 | if opts.get('diffstat'): | |
143 | body += cdiffstat(ui, '\n'.join(desc), patch) + '\n\n' |
|
143 | body += cdiffstat(ui, '\n'.join(desc), patch) + '\n\n' | |
144 |
|
144 | |||
145 | if opts.get('attach') or opts.get('inline'): |
|
145 | if opts.get('attach') or opts.get('inline'): | |
146 | msg = email.MIMEMultipart.MIMEMultipart() |
|
146 | msg = email.MIMEMultipart.MIMEMultipart() | |
147 | if body: |
|
147 | if body: | |
148 | msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test'))) |
|
148 | msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test'))) | |
149 | p = mail.mimetextpatch('\n'.join(patch), 'x-patch', opts.get('test')) |
|
149 | p = mail.mimetextpatch('\n'.join(patch), 'x-patch', opts.get('test')) | |
150 | binnode = bin(node) |
|
150 | binnode = bin(node) | |
151 | # if node is mq patch, it will have patch file name as tag |
|
151 | # if node is mq patch, it will have patch file name as tag | |
152 | if not patchname: |
|
152 | if not patchname: | |
153 | patchtags = [t for t in repo.nodetags(binnode) |
|
153 | patchtags = [t for t in repo.nodetags(binnode) | |
154 | if t.endswith('.patch') or t.endswith('.diff')] |
|
154 | if t.endswith('.patch') or t.endswith('.diff')] | |
155 | if patchtags: |
|
155 | if patchtags: | |
156 | patchname = patchtags[0] |
|
156 | patchname = patchtags[0] | |
157 | elif total > 1: |
|
157 | elif total > 1: | |
158 | patchname = cmdutil.make_filename(repo, '%b-%n.patch', |
|
158 | patchname = cmdutil.make_filename(repo, '%b-%n.patch', | |
159 | binnode, seqno=idx, total=total) |
|
159 | binnode, seqno=idx, total=total) | |
160 | else: |
|
160 | else: | |
161 | patchname = cmdutil.make_filename(repo, '%b.patch', binnode) |
|
161 | patchname = cmdutil.make_filename(repo, '%b.patch', binnode) | |
162 | disposition = 'inline' |
|
162 | disposition = 'inline' | |
163 | if opts.get('attach'): |
|
163 | if opts.get('attach'): | |
164 | disposition = 'attachment' |
|
164 | disposition = 'attachment' | |
165 | p['Content-Disposition'] = disposition + '; filename=' + patchname |
|
165 | p['Content-Disposition'] = disposition + '; filename=' + patchname | |
166 | msg.attach(p) |
|
166 | msg.attach(p) | |
167 | else: |
|
167 | else: | |
168 | body += '\n'.join(patch) |
|
168 | body += '\n'.join(patch) | |
169 | msg = mail.mimetextpatch(body, display=opts.get('test')) |
|
169 | msg = mail.mimetextpatch(body, display=opts.get('test')) | |
170 |
|
170 | |||
171 | subj = desc[0].strip().rstrip('. ') |
|
171 | subj = desc[0].strip().rstrip('. ') | |
172 | if total == 1 and not opts.get('intro'): |
|
172 | if total == 1 and not opts.get('intro'): | |
173 | subj = '[PATCH] ' + (opts.get('subject') or subj) |
|
173 | subj = '[PATCH] ' + (opts.get('subject') or subj) | |
174 | else: |
|
174 | else: | |
175 | tlen = len(str(total)) |
|
175 | tlen = len(str(total)) | |
176 | subj = '[PATCH %0*d of %d] %s' % (tlen, idx, total, subj) |
|
176 | subj = '[PATCH %0*d of %d] %s' % (tlen, idx, total, subj) | |
177 | msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test')) |
|
177 | msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test')) | |
178 | msg['X-Mercurial-Node'] = node |
|
178 | msg['X-Mercurial-Node'] = node | |
179 | return msg, subj |
|
179 | return msg, subj | |
180 |
|
180 | |||
181 | def patchbomb(ui, repo, *revs, **opts): |
|
181 | def patchbomb(ui, repo, *revs, **opts): | |
182 | '''send changesets by email |
|
182 | '''send changesets by email | |
183 |
|
183 | |||
184 | By default, diffs are sent in the format generated by hg export, |
|
184 | By default, diffs are sent in the format generated by hg export, | |
185 | one per message. The series starts with a "[PATCH 0 of N]" |
|
185 | one per message. The series starts with a "[PATCH 0 of N]" | |
186 | introduction, which describes the series as a whole. |
|
186 | introduction, which describes the series as a whole. | |
187 |
|
187 | |||
188 | Each patch email has a Subject line of "[PATCH M of N] ...", using |
|
188 | Each patch email has a Subject line of "[PATCH M of N] ...", using | |
189 | the first line of the changeset description as the subject text. |
|
189 | the first line of the changeset description as the subject text. | |
190 | The message contains two or three parts. First, the changeset |
|
190 | The message contains two or three parts. First, the changeset | |
191 | description. Next, (optionally) if the diffstat program is |
|
191 | description. Next, (optionally) if the diffstat program is | |
192 | installed and -d/--diffstat is used, the result of running |
|
192 | installed and -d/--diffstat is used, the result of running | |
193 | diffstat on the patch. Finally, the patch itself, as generated by |
|
193 | diffstat on the patch. Finally, the patch itself, as generated by | |
194 | "hg export". |
|
194 | "hg export". | |
195 |
|
195 | |||
196 | By default the patch is included as text in the email body for |
|
196 | By default the patch is included as text in the email body for | |
197 | easy reviewing. Using the -a/--attach option will instead create |
|
197 | easy reviewing. Using the -a/--attach option will instead create | |
198 | an attachment for the patch. With -i/--inline an inline attachment |
|
198 | an attachment for the patch. With -i/--inline an inline attachment | |
199 | will be created. |
|
199 | will be created. | |
200 |
|
200 | |||
201 | With -o/--outgoing, emails will be generated for patches not found |
|
201 | With -o/--outgoing, emails will be generated for patches not found | |
202 | in the destination repository (or only those which are ancestors |
|
202 | in the destination repository (or only those which are ancestors | |
203 | of the specified revisions if any are provided) |
|
203 | of the specified revisions if any are provided) | |
204 |
|
204 | |||
205 | With -b/--bundle, changesets are selected as for --outgoing, but a |
|
205 | With -b/--bundle, changesets are selected as for --outgoing, but a | |
206 | single email containing a binary Mercurial bundle as an attachment |
|
206 | single email containing a binary Mercurial bundle as an attachment | |
207 | will be sent. |
|
207 | will be sent. | |
208 |
|
208 | |||
209 | Examples: |
|
209 | Examples: | |
210 |
|
210 | |||
211 | hg email -r 3000 # send patch 3000 only |
|
211 | hg email -r 3000 # send patch 3000 only | |
212 | hg email -r 3000 -r 3001 # send patches 3000 and 3001 |
|
212 | hg email -r 3000 -r 3001 # send patches 3000 and 3001 | |
213 | hg email -r 3000:3005 # send patches 3000 through 3005 |
|
213 | hg email -r 3000:3005 # send patches 3000 through 3005 | |
214 | hg email 3000 # send patch 3000 (deprecated) |
|
214 | hg email 3000 # send patch 3000 (deprecated) | |
215 |
|
215 | |||
216 | hg email -o # send all patches not in default |
|
216 | hg email -o # send all patches not in default | |
217 | hg email -o DEST # send all patches not in DEST |
|
217 | hg email -o DEST # send all patches not in DEST | |
218 | hg email -o -r 3000 # send all ancestors of 3000 not in default |
|
218 | hg email -o -r 3000 # send all ancestors of 3000 not in default | |
219 | hg email -o -r 3000 DEST # send all ancestors of 3000 not in DEST |
|
219 | hg email -o -r 3000 DEST # send all ancestors of 3000 not in DEST | |
220 |
|
220 | |||
221 | hg email -b # send bundle of all patches not in default |
|
221 | hg email -b # send bundle of all patches not in default | |
222 | hg email -b DEST # send bundle of all patches not in DEST |
|
222 | hg email -b DEST # send bundle of all patches not in DEST | |
223 | hg email -b -r 3000 # bundle of all ancestors of 3000 not in default |
|
223 | hg email -b -r 3000 # bundle of all ancestors of 3000 not in default | |
224 | hg email -b -r 3000 DEST # bundle of all ancestors of 3000 not in DEST |
|
224 | hg email -b -r 3000 DEST # bundle of all ancestors of 3000 not in DEST | |
225 |
|
225 | |||
226 | Before using this command, you will need to enable email in your |
|
226 | Before using this command, you will need to enable email in your | |
227 | hgrc. See the [email] section in hgrc(5) for details. |
|
227 | hgrc. See the [email] section in hgrc(5) for details. | |
228 | ''' |
|
228 | ''' | |
229 |
|
229 | |||
230 | _charsets = mail._charsets(ui) |
|
230 | _charsets = mail._charsets(ui) | |
231 |
|
231 | |||
232 | def outgoing(dest, revs): |
|
232 | def outgoing(dest, revs): | |
233 | '''Return the revisions present locally but not in dest''' |
|
233 | '''Return the revisions present locally but not in dest''' | |
234 | dest = ui.expandpath(dest or 'default-push', dest or 'default') |
|
234 | dest = ui.expandpath(dest or 'default-push', dest or 'default') | |
235 | revs = [repo.lookup(rev) for rev in revs] |
|
235 | revs = [repo.lookup(rev) for rev in revs] | |
236 | other = hg.repository(cmdutil.remoteui(repo, opts), dest) |
|
236 | other = hg.repository(cmdutil.remoteui(repo, opts), dest) | |
237 | ui.status(_('comparing with %s\n') % dest) |
|
237 | ui.status(_('comparing with %s\n') % dest) | |
238 | o = repo.findoutgoing(other) |
|
238 | o = repo.findoutgoing(other) | |
239 | if not o: |
|
239 | if not o: | |
240 | ui.status(_("no changes found\n")) |
|
240 | ui.status(_("no changes found\n")) | |
241 | return [] |
|
241 | return [] | |
242 | o = repo.changelog.nodesbetween(o, revs or None)[0] |
|
242 | o = repo.changelog.nodesbetween(o, revs or None)[0] | |
243 | return [str(repo.changelog.rev(r)) for r in o] |
|
243 | return [str(repo.changelog.rev(r)) for r in o] | |
244 |
|
244 | |||
245 | def getpatches(revs): |
|
245 | def getpatches(revs): | |
246 | for r in cmdutil.revrange(repo, revs): |
|
246 | for r in cmdutil.revrange(repo, revs): | |
247 | output = cStringIO.StringIO() |
|
247 | output = cStringIO.StringIO() | |
248 | patch.export(repo, [r], fp=output, |
|
248 | patch.export(repo, [r], fp=output, | |
249 | opts=patch.diffopts(ui, opts)) |
|
249 | opts=patch.diffopts(ui, opts)) | |
250 | yield output.getvalue().split('\n') |
|
250 | yield output.getvalue().split('\n') | |
251 |
|
251 | |||
252 | def getbundle(dest): |
|
252 | def getbundle(dest): | |
253 | tmpdir = tempfile.mkdtemp(prefix='hg-email-bundle-') |
|
253 | tmpdir = tempfile.mkdtemp(prefix='hg-email-bundle-') | |
254 | tmpfn = os.path.join(tmpdir, 'bundle') |
|
254 | tmpfn = os.path.join(tmpdir, 'bundle') | |
255 | try: |
|
255 | try: | |
256 | commands.bundle(ui, repo, tmpfn, dest, **opts) |
|
256 | commands.bundle(ui, repo, tmpfn, dest, **opts) | |
257 | return open(tmpfn, 'rb').read() |
|
257 | return open(tmpfn, 'rb').read() | |
258 | finally: |
|
258 | finally: | |
259 | try: |
|
259 | try: | |
260 | os.unlink(tmpfn) |
|
260 | os.unlink(tmpfn) | |
261 | except: |
|
261 | except: | |
262 | pass |
|
262 | pass | |
263 | os.rmdir(tmpdir) |
|
263 | os.rmdir(tmpdir) | |
264 |
|
264 | |||
265 | if not (opts.get('test') or opts.get('mbox')): |
|
265 | if not (opts.get('test') or opts.get('mbox')): | |
266 | # really sending |
|
266 | # really sending | |
267 | mail.validateconfig(ui) |
|
267 | mail.validateconfig(ui) | |
268 |
|
268 | |||
269 | if not (revs or opts.get('rev') |
|
269 | if not (revs or opts.get('rev') | |
270 | or opts.get('outgoing') or opts.get('bundle') |
|
270 | or opts.get('outgoing') or opts.get('bundle') | |
271 | or opts.get('patches')): |
|
271 | or opts.get('patches')): | |
272 | raise util.Abort(_('specify at least one changeset with -r or -o')) |
|
272 | raise util.Abort(_('specify at least one changeset with -r or -o')) | |
273 |
|
273 | |||
274 | if opts.get('outgoing') and opts.get('bundle'): |
|
274 | if opts.get('outgoing') and opts.get('bundle'): | |
275 | raise util.Abort(_("--outgoing mode always on with --bundle;" |
|
275 | raise util.Abort(_("--outgoing mode always on with --bundle;" | |
276 | " do not re-specify --outgoing")) |
|
276 | " do not re-specify --outgoing")) | |
277 |
|
277 | |||
278 | if opts.get('outgoing') or opts.get('bundle'): |
|
278 | if opts.get('outgoing') or opts.get('bundle'): | |
279 | if len(revs) > 1: |
|
279 | if len(revs) > 1: | |
280 | raise util.Abort(_("too many destinations")) |
|
280 | raise util.Abort(_("too many destinations")) | |
281 | dest = revs and revs[0] or None |
|
281 | dest = revs and revs[0] or None | |
282 | revs = [] |
|
282 | revs = [] | |
283 |
|
283 | |||
284 | if opts.get('rev'): |
|
284 | if opts.get('rev'): | |
285 | if revs: |
|
285 | if revs: | |
286 | raise util.Abort(_('use only one form to specify the revision')) |
|
286 | raise util.Abort(_('use only one form to specify the revision')) | |
287 | revs = opts.get('rev') |
|
287 | revs = opts.get('rev') | |
288 |
|
288 | |||
289 | if opts.get('outgoing'): |
|
289 | if opts.get('outgoing'): | |
290 | revs = outgoing(dest, opts.get('rev')) |
|
290 | revs = outgoing(dest, opts.get('rev')) | |
291 | if opts.get('bundle'): |
|
291 | if opts.get('bundle'): | |
292 | opts['revs'] = revs |
|
292 | opts['revs'] = revs | |
293 |
|
293 | |||
294 | # start |
|
294 | # start | |
295 | if opts.get('date'): |
|
295 | if opts.get('date'): | |
296 | start_time = util.parsedate(opts.get('date')) |
|
296 | start_time = util.parsedate(opts.get('date')) | |
297 | else: |
|
297 | else: | |
298 | start_time = util.makedate() |
|
298 | start_time = util.makedate() | |
299 |
|
299 | |||
300 | def genmsgid(id): |
|
300 | def genmsgid(id): | |
301 | return '<%s.%s@%s>' % (id[:20], int(start_time[0]), socket.getfqdn()) |
|
301 | return '<%s.%s@%s>' % (id[:20], int(start_time[0]), socket.getfqdn()) | |
302 |
|
302 | |||
303 | def getdescription(body, sender): |
|
303 | def getdescription(body, sender): | |
304 | if opts.get('desc'): |
|
304 | if opts.get('desc'): | |
305 | body = open(opts.get('desc')).read() |
|
305 | body = open(opts.get('desc')).read() | |
306 | else: |
|
306 | else: | |
307 | ui.write(_('\nWrite the introductory message for the ' |
|
307 | ui.write(_('\nWrite the introductory message for the ' | |
308 | 'patch series.\n\n')) |
|
308 | 'patch series.\n\n')) | |
309 | body = ui.edit(body, sender) |
|
309 | body = ui.edit(body, sender) | |
310 | return body |
|
310 | return body | |
311 |
|
311 | |||
312 | def getpatchmsgs(patches, patchnames=None): |
|
312 | def getpatchmsgs(patches, patchnames=None): | |
313 | jumbo = [] |
|
313 | jumbo = [] | |
314 | msgs = [] |
|
314 | msgs = [] | |
315 |
|
315 | |||
316 | ui.write(_('This patch series consists of %d patches.\n\n') |
|
316 | ui.write(_('This patch series consists of %d patches.\n\n') | |
317 | % len(patches)) |
|
317 | % len(patches)) | |
318 |
|
318 | |||
319 | name = None |
|
319 | name = None | |
320 | for i, p in enumerate(patches): |
|
320 | for i, p in enumerate(patches): | |
321 | jumbo.extend(p) |
|
321 | jumbo.extend(p) | |
322 | if patchnames: |
|
322 | if patchnames: | |
323 | name = patchnames[i] |
|
323 | name = patchnames[i] | |
324 | msg = makepatch(ui, repo, p, opts, _charsets, i + 1, |
|
324 | msg = makepatch(ui, repo, p, opts, _charsets, i + 1, | |
325 | len(patches), name) |
|
325 | len(patches), name) | |
326 | msgs.append(msg) |
|
326 | msgs.append(msg) | |
327 |
|
327 | |||
328 | if len(patches) > 1 or opts.get('intro'): |
|
328 | if len(patches) > 1 or opts.get('intro'): | |
329 | tlen = len(str(len(patches))) |
|
329 | tlen = len(str(len(patches))) | |
330 |
|
330 | |||
331 | subj = '[PATCH %0*d of %d] %s' % ( |
|
331 | subj = '[PATCH %0*d of %d] %s' % ( | |
332 | tlen, 0, len(patches), |
|
332 | tlen, 0, len(patches), | |
333 | opts.get('subject') or |
|
333 | opts.get('subject') or | |
334 | prompt(ui, 'Subject:', |
|
334 | prompt(ui, 'Subject:', | |
335 | rest=' [PATCH %0*d of %d] ' % (tlen, 0, len(patches)))) |
|
335 | rest=' [PATCH %0*d of %d] ' % (tlen, 0, len(patches)))) | |
336 |
|
336 | |||
337 | body = '' |
|
337 | body = '' | |
338 | if opts.get('diffstat'): |
|
338 | if opts.get('diffstat'): | |
339 | d = cdiffstat(ui, _('Final summary:\n'), jumbo) |
|
339 | d = cdiffstat(ui, _('Final summary:\n'), jumbo) | |
340 | if d: |
|
340 | if d: | |
341 | body = '\n' + d |
|
341 | body = '\n' + d | |
342 |
|
342 | |||
343 | body = getdescription(body, sender) |
|
343 | body = getdescription(body, sender) | |
344 | msg = mail.mimeencode(ui, body, _charsets, opts.get('test')) |
|
344 | msg = mail.mimeencode(ui, body, _charsets, opts.get('test')) | |
345 | msg['Subject'] = mail.headencode(ui, subj, _charsets, |
|
345 | msg['Subject'] = mail.headencode(ui, subj, _charsets, | |
346 | opts.get('test')) |
|
346 | opts.get('test')) | |
347 |
|
347 | |||
348 | msgs.insert(0, (msg, subj)) |
|
348 | msgs.insert(0, (msg, subj)) | |
349 | return msgs |
|
349 | return msgs | |
350 |
|
350 | |||
351 | def getbundlemsgs(bundle): |
|
351 | def getbundlemsgs(bundle): | |
352 | subj = (opts.get('subject') |
|
352 | subj = (opts.get('subject') | |
353 | or prompt(ui, 'Subject:', 'A bundle for your repository')) |
|
353 | or prompt(ui, 'Subject:', 'A bundle for your repository')) | |
354 |
|
354 | |||
355 | body = getdescription('', sender) |
|
355 | body = getdescription('', sender) | |
356 | msg = email.MIMEMultipart.MIMEMultipart() |
|
356 | msg = email.MIMEMultipart.MIMEMultipart() | |
357 | if body: |
|
357 | if body: | |
358 | msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test'))) |
|
358 | msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test'))) | |
359 | datapart = email.MIMEBase.MIMEBase('application', 'x-mercurial-bundle') |
|
359 | datapart = email.MIMEBase.MIMEBase('application', 'x-mercurial-bundle') | |
360 | datapart.set_payload(bundle) |
|
360 | datapart.set_payload(bundle) | |
361 | bundlename = '%s.hg' % opts.get('bundlename', 'bundle') |
|
361 | bundlename = '%s.hg' % opts.get('bundlename', 'bundle') | |
362 | datapart.add_header('Content-Disposition', 'attachment', |
|
362 | datapart.add_header('Content-Disposition', 'attachment', | |
363 | filename=bundlename) |
|
363 | filename=bundlename) | |
364 | email.Encoders.encode_base64(datapart) |
|
364 | email.Encoders.encode_base64(datapart) | |
365 | msg.attach(datapart) |
|
365 | msg.attach(datapart) | |
366 | msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test')) |
|
366 | msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test')) | |
367 | return [(msg, subj)] |
|
367 | return [(msg, subj)] | |
368 |
|
368 | |||
369 | sender = (opts.get('from') or ui.config('email', 'from') or |
|
369 | sender = (opts.get('from') or ui.config('email', 'from') or | |
370 | ui.config('patchbomb', 'from') or |
|
370 | ui.config('patchbomb', 'from') or | |
371 | prompt(ui, 'From', ui.username())) |
|
371 | prompt(ui, 'From', ui.username())) | |
372 |
|
372 | |||
373 | # internal option used by pbranches |
|
373 | # internal option used by pbranches | |
374 | patches = opts.get('patches') |
|
374 | patches = opts.get('patches') | |
375 | if patches: |
|
375 | if patches: | |
376 | msgs = getpatchmsgs(patches, opts.get('patchnames')) |
|
376 | msgs = getpatchmsgs(patches, opts.get('patchnames')) | |
377 | elif opts.get('bundle'): |
|
377 | elif opts.get('bundle'): | |
378 | msgs = getbundlemsgs(getbundle(dest)) |
|
378 | msgs = getbundlemsgs(getbundle(dest)) | |
379 | else: |
|
379 | else: | |
380 | msgs = getpatchmsgs(list(getpatches(revs))) |
|
380 | msgs = getpatchmsgs(list(getpatches(revs))) | |
381 |
|
381 | |||
382 | def getaddrs(opt, prpt, default = None): |
|
382 | def getaddrs(opt, prpt, default = None): | |
383 | addrs = opts.get(opt) or (ui.config('email', opt) or |
|
383 | addrs = opts.get(opt) or (ui.config('email', opt) or | |
384 | ui.config('patchbomb', opt) or |
|
384 | ui.config('patchbomb', opt) or | |
385 | prompt(ui, prpt, default)).split(',') |
|
385 | prompt(ui, prpt, default)).split(',') | |
386 | return [mail.addressencode(ui, a.strip(), _charsets, opts.get('test')) |
|
386 | return [mail.addressencode(ui, a.strip(), _charsets, opts.get('test')) | |
387 | for a in addrs if a.strip()] |
|
387 | for a in addrs if a.strip()] | |
388 |
|
388 | |||
389 | to = getaddrs('to', 'To') |
|
389 | to = getaddrs('to', 'To') | |
390 | cc = getaddrs('cc', 'Cc', '') |
|
390 | cc = getaddrs('cc', 'Cc', '') | |
391 |
|
391 | |||
392 | bcc = opts.get('bcc') or (ui.config('email', 'bcc') or |
|
392 | bcc = opts.get('bcc') or (ui.config('email', 'bcc') or | |
393 | ui.config('patchbomb', 'bcc') or '').split(',') |
|
393 | ui.config('patchbomb', 'bcc') or '').split(',') | |
394 | bcc = [mail.addressencode(ui, a.strip(), _charsets, opts.get('test')) |
|
394 | bcc = [mail.addressencode(ui, a.strip(), _charsets, opts.get('test')) | |
395 | for a in bcc if a.strip()] |
|
395 | for a in bcc if a.strip()] | |
396 |
|
396 | |||
397 | ui.write('\n') |
|
397 | ui.write('\n') | |
398 |
|
398 | |||
399 | parent = opts.get('in_reply_to') or None |
|
399 | parent = opts.get('in_reply_to') or None | |
400 | first = True |
|
400 | first = True | |
401 |
|
401 | |||
402 | sender_addr = email.Utils.parseaddr(sender)[1] |
|
402 | sender_addr = email.Utils.parseaddr(sender)[1] | |
403 | sender = mail.addressencode(ui, sender, _charsets, opts.get('test')) |
|
403 | sender = mail.addressencode(ui, sender, _charsets, opts.get('test')) | |
404 | sendmail = None |
|
404 | sendmail = None | |
405 | for m, subj in msgs: |
|
405 | for m, subj in msgs: | |
406 | try: |
|
406 | try: | |
407 | m['Message-Id'] = genmsgid(m['X-Mercurial-Node']) |
|
407 | m['Message-Id'] = genmsgid(m['X-Mercurial-Node']) | |
408 | except TypeError: |
|
408 | except TypeError: | |
409 | m['Message-Id'] = genmsgid('patchbomb') |
|
409 | m['Message-Id'] = genmsgid('patchbomb') | |
410 | if parent: |
|
410 | if parent: | |
411 | m['In-Reply-To'] = parent |
|
411 | m['In-Reply-To'] = parent | |
412 | m['References'] = parent |
|
412 | m['References'] = parent | |
413 | if first: |
|
413 | if first: | |
414 | parent = m['Message-Id'] |
|
414 | parent = m['Message-Id'] | |
415 | first = False |
|
415 | first = False | |
416 |
|
416 | |||
417 | m['User-Agent'] = 'Mercurial-patchbomb/%s' % util.version() |
|
417 | m['User-Agent'] = 'Mercurial-patchbomb/%s' % util.version() | |
418 |
m['Date'] = |
|
418 | m['Date'] = email.Utils.formatdate(start_time[0]) | |
419 |
|
419 | |||
420 | start_time = (start_time[0] + 1, start_time[1]) |
|
420 | start_time = (start_time[0] + 1, start_time[1]) | |
421 | m['From'] = sender |
|
421 | m['From'] = sender | |
422 | m['To'] = ', '.join(to) |
|
422 | m['To'] = ', '.join(to) | |
423 | if cc: |
|
423 | if cc: | |
424 | m['Cc'] = ', '.join(cc) |
|
424 | m['Cc'] = ', '.join(cc) | |
425 | if bcc: |
|
425 | if bcc: | |
426 | m['Bcc'] = ', '.join(bcc) |
|
426 | m['Bcc'] = ', '.join(bcc) | |
427 | if opts.get('test'): |
|
427 | if opts.get('test'): | |
428 | ui.status(_('Displaying '), subj, ' ...\n') |
|
428 | ui.status(_('Displaying '), subj, ' ...\n') | |
429 | ui.flush() |
|
429 | ui.flush() | |
430 | if 'PAGER' in os.environ: |
|
430 | if 'PAGER' in os.environ: | |
431 | fp = util.popen(os.environ['PAGER'], 'w') |
|
431 | fp = util.popen(os.environ['PAGER'], 'w') | |
432 | else: |
|
432 | else: | |
433 | fp = ui |
|
433 | fp = ui | |
434 | generator = email.Generator.Generator(fp, mangle_from_=False) |
|
434 | generator = email.Generator.Generator(fp, mangle_from_=False) | |
435 | try: |
|
435 | try: | |
436 | generator.flatten(m, 0) |
|
436 | generator.flatten(m, 0) | |
437 | fp.write('\n') |
|
437 | fp.write('\n') | |
438 | except IOError, inst: |
|
438 | except IOError, inst: | |
439 | if inst.errno != errno.EPIPE: |
|
439 | if inst.errno != errno.EPIPE: | |
440 | raise |
|
440 | raise | |
441 | if fp is not ui: |
|
441 | if fp is not ui: | |
442 | fp.close() |
|
442 | fp.close() | |
443 | elif opts.get('mbox'): |
|
443 | elif opts.get('mbox'): | |
444 | ui.status(_('Writing '), subj, ' ...\n') |
|
444 | ui.status(_('Writing '), subj, ' ...\n') | |
445 | fp = open(opts.get('mbox'), 'In-Reply-To' in m and 'ab+' or 'wb+') |
|
445 | fp = open(opts.get('mbox'), 'In-Reply-To' in m and 'ab+' or 'wb+') | |
446 | generator = email.Generator.Generator(fp, mangle_from_=True) |
|
446 | generator = email.Generator.Generator(fp, mangle_from_=True) | |
447 | date = util.datestr(start_time, '%a %b %d %H:%M:%S %Y') |
|
447 | date = util.datestr(start_time, '%a %b %d %H:%M:%S %Y') | |
448 | fp.write('From %s %s\n' % (sender_addr, date)) |
|
448 | fp.write('From %s %s\n' % (sender_addr, date)) | |
449 | generator.flatten(m, 0) |
|
449 | generator.flatten(m, 0) | |
450 | fp.write('\n\n') |
|
450 | fp.write('\n\n') | |
451 | fp.close() |
|
451 | fp.close() | |
452 | else: |
|
452 | else: | |
453 | if not sendmail: |
|
453 | if not sendmail: | |
454 | sendmail = mail.connect(ui) |
|
454 | sendmail = mail.connect(ui) | |
455 | ui.status(_('Sending '), subj, ' ...\n') |
|
455 | ui.status(_('Sending '), subj, ' ...\n') | |
456 | # Exim does not remove the Bcc field |
|
456 | # Exim does not remove the Bcc field | |
457 | del m['Bcc'] |
|
457 | del m['Bcc'] | |
458 | fp = cStringIO.StringIO() |
|
458 | fp = cStringIO.StringIO() | |
459 | generator = email.Generator.Generator(fp, mangle_from_=False) |
|
459 | generator = email.Generator.Generator(fp, mangle_from_=False) | |
460 | generator.flatten(m, 0) |
|
460 | generator.flatten(m, 0) | |
461 | sendmail(sender, to + bcc + cc, fp.getvalue()) |
|
461 | sendmail(sender, to + bcc + cc, fp.getvalue()) | |
462 |
|
462 | |||
463 | emailopts = [ |
|
463 | emailopts = [ | |
464 | ('a', 'attach', None, _('send patches as attachments')), |
|
464 | ('a', 'attach', None, _('send patches as attachments')), | |
465 | ('i', 'inline', None, _('send patches as inline attachments')), |
|
465 | ('i', 'inline', None, _('send patches as inline attachments')), | |
466 | ('', 'bcc', [], _('email addresses of blind carbon copy recipients')), |
|
466 | ('', 'bcc', [], _('email addresses of blind carbon copy recipients')), | |
467 | ('c', 'cc', [], _('email addresses of copy recipients')), |
|
467 | ('c', 'cc', [], _('email addresses of copy recipients')), | |
468 | ('d', 'diffstat', None, _('add diffstat output to messages')), |
|
468 | ('d', 'diffstat', None, _('add diffstat output to messages')), | |
469 | ('', 'date', '', _('use the given date as the sending date')), |
|
469 | ('', 'date', '', _('use the given date as the sending date')), | |
470 | ('', 'desc', '', _('use the given file as the series description')), |
|
470 | ('', 'desc', '', _('use the given file as the series description')), | |
471 | ('f', 'from', '', _('email address of sender')), |
|
471 | ('f', 'from', '', _('email address of sender')), | |
472 | ('n', 'test', None, _('print messages that would be sent')), |
|
472 | ('n', 'test', None, _('print messages that would be sent')), | |
473 | ('m', 'mbox', '', |
|
473 | ('m', 'mbox', '', | |
474 | _('write messages to mbox file instead of sending them')), |
|
474 | _('write messages to mbox file instead of sending them')), | |
475 | ('s', 'subject', '', |
|
475 | ('s', 'subject', '', | |
476 | _('subject of first message (intro or single patch)')), |
|
476 | _('subject of first message (intro or single patch)')), | |
477 | ('', 'in-reply-to', '', |
|
477 | ('', 'in-reply-to', '', | |
478 | _('message identifier to reply to')), |
|
478 | _('message identifier to reply to')), | |
479 | ('t', 'to', [], _('email addresses of recipients')), |
|
479 | ('t', 'to', [], _('email addresses of recipients')), | |
480 | ] |
|
480 | ] | |
481 |
|
481 | |||
482 |
|
482 | |||
483 | cmdtable = { |
|
483 | cmdtable = { | |
484 | "email": |
|
484 | "email": | |
485 | (patchbomb, |
|
485 | (patchbomb, | |
486 | [('g', 'git', None, _('use git extended diff format')), |
|
486 | [('g', 'git', None, _('use git extended diff format')), | |
487 | ('', 'plain', None, _('omit hg patch header')), |
|
487 | ('', 'plain', None, _('omit hg patch header')), | |
488 | ('o', 'outgoing', None, |
|
488 | ('o', 'outgoing', None, | |
489 | _('send changes not found in the target repository')), |
|
489 | _('send changes not found in the target repository')), | |
490 | ('b', 'bundle', None, |
|
490 | ('b', 'bundle', None, | |
491 | _('send changes not in target as a binary bundle')), |
|
491 | _('send changes not in target as a binary bundle')), | |
492 | ('', 'bundlename', 'bundle', |
|
492 | ('', 'bundlename', 'bundle', | |
493 | _('file name of the bundle attachment')), |
|
493 | _('file name of the bundle attachment')), | |
494 | ('r', 'rev', [], _('a revision to send')), |
|
494 | ('r', 'rev', [], _('a revision to send')), | |
495 | ('', 'force', None, |
|
495 | ('', 'force', None, | |
496 | _('run even when remote repository is unrelated ' |
|
496 | _('run even when remote repository is unrelated ' | |
497 | '(with -b/--bundle)')), |
|
497 | '(with -b/--bundle)')), | |
498 | ('', 'base', [], |
|
498 | ('', 'base', [], | |
499 | _('a base changeset to specify instead of a destination ' |
|
499 | _('a base changeset to specify instead of a destination ' | |
500 | '(with -b/--bundle)')), |
|
500 | '(with -b/--bundle)')), | |
501 | ('', 'intro', None, |
|
501 | ('', 'intro', None, | |
502 | _('send an introduction email for a single patch')), |
|
502 | _('send an introduction email for a single patch')), | |
503 | ] + emailopts + commands.remoteopts, |
|
503 | ] + emailopts + commands.remoteopts, | |
504 | _('hg email [OPTION]... [DEST]...')) |
|
504 | _('hg email [OPTION]... [DEST]...')) | |
505 | } |
|
505 | } |
@@ -1,1256 +1,1256 b'' | |||||
1 | adding a |
|
1 | adding a | |
2 | This patch series consists of 1 patches. |
|
2 | This patch series consists of 1 patches. | |
3 |
|
3 | |||
4 |
|
4 | |||
5 | Displaying [PATCH] a ... |
|
5 | Displaying [PATCH] a ... | |
6 | Content-Type: text/plain; charset="us-ascii" |
|
6 | Content-Type: text/plain; charset="us-ascii" | |
7 | MIME-Version: 1.0 |
|
7 | MIME-Version: 1.0 | |
8 | Content-Transfer-Encoding: 7bit |
|
8 | Content-Transfer-Encoding: 7bit | |
9 | Subject: [PATCH] a |
|
9 | Subject: [PATCH] a | |
10 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
10 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
11 | Message-Id: <8580ff50825a50c8f716.60@ |
|
11 | Message-Id: <8580ff50825a50c8f716.60@ | |
12 | User-Agent: Mercurial-patchbomb |
|
12 | User-Agent: Mercurial-patchbomb | |
13 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
13 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
14 | From: quux |
|
14 | From: quux | |
15 | To: foo |
|
15 | To: foo | |
16 | Cc: bar |
|
16 | Cc: bar | |
17 |
|
17 | |||
18 | # HG changeset patch |
|
18 | # HG changeset patch | |
19 | # User test |
|
19 | # User test | |
20 | # Date 1 0 |
|
20 | # Date 1 0 | |
21 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
21 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
22 | # Parent 0000000000000000000000000000000000000000 |
|
22 | # Parent 0000000000000000000000000000000000000000 | |
23 | a |
|
23 | a | |
24 |
|
24 | |||
25 | diff -r 000000000000 -r 8580ff50825a a |
|
25 | diff -r 000000000000 -r 8580ff50825a a | |
26 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
26 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
27 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 |
|
27 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
28 | @@ -0,0 +1,1 @@ |
|
28 | @@ -0,0 +1,1 @@ | |
29 | +a |
|
29 | +a | |
30 |
|
30 | |||
31 | adding b |
|
31 | adding b | |
32 | This patch series consists of 2 patches. |
|
32 | This patch series consists of 2 patches. | |
33 |
|
33 | |||
34 |
|
34 | |||
35 | Write the introductory message for the patch series. |
|
35 | Write the introductory message for the patch series. | |
36 |
|
36 | |||
37 |
|
37 | |||
38 | Displaying [PATCH 0 of 2] test ... |
|
38 | Displaying [PATCH 0 of 2] test ... | |
39 | Content-Type: text/plain; charset="us-ascii" |
|
39 | Content-Type: text/plain; charset="us-ascii" | |
40 | MIME-Version: 1.0 |
|
40 | MIME-Version: 1.0 | |
41 | Content-Transfer-Encoding: 7bit |
|
41 | Content-Transfer-Encoding: 7bit | |
42 | Subject: [PATCH 0 of 2] test |
|
42 | Subject: [PATCH 0 of 2] test | |
43 | Message-Id: <patchbomb.120@ |
|
43 | Message-Id: <patchbomb.120@ | |
44 | User-Agent: Mercurial-patchbomb |
|
44 | User-Agent: Mercurial-patchbomb | |
45 |
Date: Thu, 01 Jan 1970 00:02:00 |
|
45 | Date: Thu, 01 Jan 1970 00:02:00 -0000 | |
46 | From: quux |
|
46 | From: quux | |
47 | To: foo |
|
47 | To: foo | |
48 | Cc: bar |
|
48 | Cc: bar | |
49 |
|
49 | |||
50 |
|
50 | |||
51 | Displaying [PATCH 1 of 2] a ... |
|
51 | Displaying [PATCH 1 of 2] a ... | |
52 | Content-Type: text/plain; charset="us-ascii" |
|
52 | Content-Type: text/plain; charset="us-ascii" | |
53 | MIME-Version: 1.0 |
|
53 | MIME-Version: 1.0 | |
54 | Content-Transfer-Encoding: 7bit |
|
54 | Content-Transfer-Encoding: 7bit | |
55 | Subject: [PATCH 1 of 2] a |
|
55 | Subject: [PATCH 1 of 2] a | |
56 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
56 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
57 | Message-Id: <8580ff50825a50c8f716.121@ |
|
57 | Message-Id: <8580ff50825a50c8f716.121@ | |
58 | In-Reply-To: <patchbomb.120@ |
|
58 | In-Reply-To: <patchbomb.120@ | |
59 | References: <patchbomb.120@ |
|
59 | References: <patchbomb.120@ | |
60 | User-Agent: Mercurial-patchbomb |
|
60 | User-Agent: Mercurial-patchbomb | |
61 |
Date: Thu, 01 Jan 1970 00:02:01 |
|
61 | Date: Thu, 01 Jan 1970 00:02:01 -0000 | |
62 | From: quux |
|
62 | From: quux | |
63 | To: foo |
|
63 | To: foo | |
64 | Cc: bar |
|
64 | Cc: bar | |
65 |
|
65 | |||
66 | # HG changeset patch |
|
66 | # HG changeset patch | |
67 | # User test |
|
67 | # User test | |
68 | # Date 1 0 |
|
68 | # Date 1 0 | |
69 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
69 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
70 | # Parent 0000000000000000000000000000000000000000 |
|
70 | # Parent 0000000000000000000000000000000000000000 | |
71 | a |
|
71 | a | |
72 |
|
72 | |||
73 | diff -r 000000000000 -r 8580ff50825a a |
|
73 | diff -r 000000000000 -r 8580ff50825a a | |
74 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
74 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
75 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 |
|
75 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
76 | @@ -0,0 +1,1 @@ |
|
76 | @@ -0,0 +1,1 @@ | |
77 | +a |
|
77 | +a | |
78 |
|
78 | |||
79 | Displaying [PATCH 2 of 2] b ... |
|
79 | Displaying [PATCH 2 of 2] b ... | |
80 | Content-Type: text/plain; charset="us-ascii" |
|
80 | Content-Type: text/plain; charset="us-ascii" | |
81 | MIME-Version: 1.0 |
|
81 | MIME-Version: 1.0 | |
82 | Content-Transfer-Encoding: 7bit |
|
82 | Content-Transfer-Encoding: 7bit | |
83 | Subject: [PATCH 2 of 2] b |
|
83 | Subject: [PATCH 2 of 2] b | |
84 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
84 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
85 | Message-Id: <97d72e5f12c7e84f8506.122@ |
|
85 | Message-Id: <97d72e5f12c7e84f8506.122@ | |
86 | In-Reply-To: <patchbomb.120@ |
|
86 | In-Reply-To: <patchbomb.120@ | |
87 | References: <patchbomb.120@ |
|
87 | References: <patchbomb.120@ | |
88 | User-Agent: Mercurial-patchbomb |
|
88 | User-Agent: Mercurial-patchbomb | |
89 |
Date: Thu, 01 Jan 1970 00:02:02 |
|
89 | Date: Thu, 01 Jan 1970 00:02:02 -0000 | |
90 | From: quux |
|
90 | From: quux | |
91 | To: foo |
|
91 | To: foo | |
92 | Cc: bar |
|
92 | Cc: bar | |
93 |
|
93 | |||
94 | # HG changeset patch |
|
94 | # HG changeset patch | |
95 | # User test |
|
95 | # User test | |
96 | # Date 2 0 |
|
96 | # Date 2 0 | |
97 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
97 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
98 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
98 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
99 | b |
|
99 | b | |
100 |
|
100 | |||
101 | diff -r 8580ff50825a -r 97d72e5f12c7 b |
|
101 | diff -r 8580ff50825a -r 97d72e5f12c7 b | |
102 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
102 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
103 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 |
|
103 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 | |
104 | @@ -0,0 +1,1 @@ |
|
104 | @@ -0,0 +1,1 @@ | |
105 | +b |
|
105 | +b | |
106 |
|
106 | |||
107 | This patch series consists of 2 patches. |
|
107 | This patch series consists of 2 patches. | |
108 |
|
108 | |||
109 |
|
109 | |||
110 | Write the introductory message for the patch series. |
|
110 | Write the introductory message for the patch series. | |
111 |
|
111 | |||
112 |
|
112 | |||
113 | Writing [PATCH 0 of 2] test ... |
|
113 | Writing [PATCH 0 of 2] test ... | |
114 | Writing [PATCH 1 of 2] a ... |
|
114 | Writing [PATCH 1 of 2] a ... | |
115 | Writing [PATCH 2 of 2] b ... |
|
115 | Writing [PATCH 2 of 2] b ... | |
116 | adding c |
|
116 | adding c | |
117 | % test bundle and description |
|
117 | % test bundle and description | |
118 | searching for changes |
|
118 | searching for changes | |
119 | 1 changesets found |
|
119 | 1 changesets found | |
120 |
|
120 | |||
121 | Displaying test ... |
|
121 | Displaying test ... | |
122 | Content-Type: multipart/mixed; boundary="=== |
|
122 | Content-Type: multipart/mixed; boundary="=== | |
123 | MIME-Version: 1.0 |
|
123 | MIME-Version: 1.0 | |
124 | Subject: test |
|
124 | Subject: test | |
125 | Message-Id: <patchbomb.180@ |
|
125 | Message-Id: <patchbomb.180@ | |
126 | User-Agent: Mercurial-patchbomb |
|
126 | User-Agent: Mercurial-patchbomb | |
127 |
Date: Thu, 01 Jan 1970 00:03:00 |
|
127 | Date: Thu, 01 Jan 1970 00:03:00 -0000 | |
128 | From: quux |
|
128 | From: quux | |
129 | To: foo |
|
129 | To: foo | |
130 | Cc: bar |
|
130 | Cc: bar | |
131 |
|
131 | |||
132 | --=== |
|
132 | --=== | |
133 | Content-Type: text/plain; charset="us-ascii" |
|
133 | Content-Type: text/plain; charset="us-ascii" | |
134 | MIME-Version: 1.0 |
|
134 | MIME-Version: 1.0 | |
135 | Content-Transfer-Encoding: 7bit |
|
135 | Content-Transfer-Encoding: 7bit | |
136 |
|
136 | |||
137 | a multiline |
|
137 | a multiline | |
138 |
|
138 | |||
139 | description |
|
139 | description | |
140 |
|
140 | |||
141 | --=== |
|
141 | --=== | |
142 | Content-Type: application/x-mercurial-bundle |
|
142 | Content-Type: application/x-mercurial-bundle | |
143 | MIME-Version: 1.0 |
|
143 | MIME-Version: 1.0 | |
144 | Content-Disposition: attachment; filename="bundle.hg" |
|
144 | Content-Disposition: attachment; filename="bundle.hg" | |
145 | Content-Transfer-Encoding: base64 |
|
145 | Content-Transfer-Encoding: base64 | |
146 |
|
146 | |||
147 | SEcxMEJaaDkxQVkmU1nvR7I3AAAN////lFYQWj1/4HwRkdC/AywIAk0E4pfoSIIIgQCgGEQOcLAA |
|
147 | SEcxMEJaaDkxQVkmU1nvR7I3AAAN////lFYQWj1/4HwRkdC/AywIAk0E4pfoSIIIgQCgGEQOcLAA | |
148 | 2tA1VPyp4mkeoG0EaaPU0GTT1GjRiNPIg9CZGBqZ6UbU9J+KFU09DNUaGgAAAAAANAGgAAAAA1U8 |
|
148 | 2tA1VPyp4mkeoG0EaaPU0GTT1GjRiNPIg9CZGBqZ6UbU9J+KFU09DNUaGgAAAAAANAGgAAAAA1U8 | |
149 | oGgAADQGgAANNANAAAAAAZipFLz3XoakCEQB3PVPyHJVi1iYkAAKQAZQGpQGZESInRnCFMqLDla2 |
|
149 | oGgAADQGgAANNANAAAAAAZipFLz3XoakCEQB3PVPyHJVi1iYkAAKQAZQGpQGZESInRnCFMqLDla2 | |
150 | Bx3qfRQeA2N4lnzKkAmP8kR2asievLLXXebVU8Vg4iEBqcJNJAxIapSU6SM4888ZAciRG6MYAIEE |
|
150 | Bx3qfRQeA2N4lnzKkAmP8kR2asievLLXXebVU8Vg4iEBqcJNJAxIapSU6SM4888ZAciRG6MYAIEE | |
151 | SlIBpFisgGkyRjX//TMtfcUAEsGu56+YnE1OlTZmzKm8BSu2rvo4rHAYYaadIFFuTy0LYgIkgLVD |
|
151 | SlIBpFisgGkyRjX//TMtfcUAEsGu56+YnE1OlTZmzKm8BSu2rvo4rHAYYaadIFFuTy0LYgIkgLVD | |
152 | sgVa2F19D1tx9+hgbAygLgQwaIqcDdgA4BjQgIiz/AEP72++llgDKhKducqodGE4B0ETqF3JFOFC |
|
152 | sgVa2F19D1tx9+hgbAygLgQwaIqcDdgA4BjQgIiz/AEP72++llgDKhKducqodGE4B0ETqF3JFOFC | |
153 | Q70eyNw= |
|
153 | Q70eyNw= | |
154 | --=== |
|
154 | --=== | |
155 | % utf-8 patch |
|
155 | % utf-8 patch | |
156 | adding description |
|
156 | adding description | |
157 | adding utf |
|
157 | adding utf | |
158 | % no mime encoding for email --test |
|
158 | % no mime encoding for email --test | |
159 | % md5sum of 8-bit output |
|
159 | % md5sum of 8-bit output | |
160 | e726c29b3008e77994c7572563e57c34 mailtest |
|
160 | 1b28ee86c937a1f9e2bf6fc5eabd00a5 mailtest | |
161 | % mime encoded mbox (base64) |
|
161 | % mime encoded mbox (base64) | |
162 | This patch series consists of 1 patches. |
|
162 | This patch series consists of 1 patches. | |
163 |
|
163 | |||
164 |
|
164 | |||
165 | Writing [PATCH] charset=utf-8; content-transfer-encoding: base64 ... |
|
165 | Writing [PATCH] charset=utf-8; content-transfer-encoding: base64 ... | |
166 | From quux Thu Jan 01 00:04:01 1970 |
|
166 | From quux Thu Jan 01 00:04:01 1970 | |
167 | Content-Type: text/plain; charset="utf-8" |
|
167 | Content-Type: text/plain; charset="utf-8" | |
168 | MIME-Version: 1.0 |
|
168 | MIME-Version: 1.0 | |
169 | Content-Transfer-Encoding: base64 |
|
169 | Content-Transfer-Encoding: base64 | |
170 | Subject: [PATCH] charset=utf-8; content-transfer-encoding: base64 |
|
170 | Subject: [PATCH] charset=utf-8; content-transfer-encoding: base64 | |
171 | X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a |
|
171 | X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a | |
172 | Message-Id: <c3c9e37db9f4fe4882cd.240@ |
|
172 | Message-Id: <c3c9e37db9f4fe4882cd.240@ | |
173 | User-Agent: Mercurial-patchbomb |
|
173 | User-Agent: Mercurial-patchbomb | |
174 |
Date: Thu, 01 Jan 1970 00:04:00 |
|
174 | Date: Thu, 01 Jan 1970 00:04:00 -0000 | |
175 | From: quux |
|
175 | From: quux | |
176 | To: foo |
|
176 | To: foo | |
177 | Cc: bar |
|
177 | Cc: bar | |
178 |
|
178 | |||
179 | IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIHRlc3QKIyBEYXRlIDQgMAojIE5vZGUgSUQgYzNj |
|
179 | IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIHRlc3QKIyBEYXRlIDQgMAojIE5vZGUgSUQgYzNj | |
180 | OWUzN2RiOWY0ZmU0ODgyY2RhMzliYWY0MmZlZDZiYWQ4YjE1YQojIFBhcmVudCAgZmYyYzlmYTIw |
|
180 | OWUzN2RiOWY0ZmU0ODgyY2RhMzliYWY0MmZlZDZiYWQ4YjE1YQojIFBhcmVudCAgZmYyYzlmYTIw | |
181 | MThiMTVmYTc0YjMzMzYzYmRhOTUyNzMyM2UyYTk5ZgpjaGFyc2V0PXV0Zi04OyBjb250ZW50LXRy |
|
181 | MThiMTVmYTc0YjMzMzYzYmRhOTUyNzMyM2UyYTk5ZgpjaGFyc2V0PXV0Zi04OyBjb250ZW50LXRy | |
182 | YW5zZmVyLWVuY29kaW5nOiBiYXNlNjQKCmRpZmYgLXIgZmYyYzlmYTIwMThiIC1yIGMzYzllMzdk |
|
182 | YW5zZmVyLWVuY29kaW5nOiBiYXNlNjQKCmRpZmYgLXIgZmYyYzlmYTIwMThiIC1yIGMzYzllMzdk | |
183 | YjlmNCBkZXNjcmlwdGlvbgotLS0gL2Rldi9udWxsCVRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCAr |
|
183 | YjlmNCBkZXNjcmlwdGlvbgotLS0gL2Rldi9udWxsCVRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCAr | |
184 | MDAwMAorKysgYi9kZXNjcmlwdGlvbglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg |
|
184 | MDAwMAorKysgYi9kZXNjcmlwdGlvbglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg | |
185 | LTAsMCArMSwzIEBACithIG11bHRpbGluZQorCitkZXNjcmlwdGlvbgpkaWZmIC1yIGZmMmM5ZmEy |
|
185 | LTAsMCArMSwzIEBACithIG11bHRpbGluZQorCitkZXNjcmlwdGlvbgpkaWZmIC1yIGZmMmM5ZmEy | |
186 | MDE4YiAtciBjM2M5ZTM3ZGI5ZjQgdXRmCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDow |
|
186 | MDE4YiAtciBjM2M5ZTM3ZGI5ZjQgdXRmCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDow | |
187 | MCAxOTcwICswMDAwCisrKyBiL3V0ZglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg |
|
187 | MCAxOTcwICswMDAwCisrKyBiL3V0ZglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg | |
188 | LTAsMCArMSwxIEBACitow7ZtbWEhCg== |
|
188 | LTAsMCArMSwxIEBACitow7ZtbWEhCg== | |
189 |
|
189 | |||
190 |
|
190 | |||
191 | % mime encoded mbox (quoted-printable) |
|
191 | % mime encoded mbox (quoted-printable) | |
192 | adding qp |
|
192 | adding qp | |
193 | % no mime encoding for email --test |
|
193 | % no mime encoding for email --test | |
194 | % md5sum of qp output |
|
194 | % md5sum of qp output | |
195 | 0402c7d033e04044e423bb04816f9dae mailtest |
|
195 | 7b5f11d50349b32eff4a9b2daaa82e7f mailtest | |
196 | % mime encoded mbox (quoted-printable) |
|
196 | % mime encoded mbox (quoted-printable) | |
197 | This patch series consists of 1 patches. |
|
197 | This patch series consists of 1 patches. | |
198 |
|
198 | |||
199 |
|
199 | |||
200 | Writing [PATCH] charset=utf-8; content-transfer-encoding: quoted-printable ... |
|
200 | Writing [PATCH] charset=utf-8; content-transfer-encoding: quoted-printable ... | |
201 | From quux Thu Jan 01 00:04:01 1970 |
|
201 | From quux Thu Jan 01 00:04:01 1970 | |
202 | Content-Type: text/plain; charset="us-ascii" |
|
202 | Content-Type: text/plain; charset="us-ascii" | |
203 | MIME-Version: 1.0 |
|
203 | MIME-Version: 1.0 | |
204 | Content-Transfer-Encoding: quoted-printable |
|
204 | Content-Transfer-Encoding: quoted-printable | |
205 | Subject: [PATCH] charset=utf-8; content-transfer-encoding: quoted-printable |
|
205 | Subject: [PATCH] charset=utf-8; content-transfer-encoding: quoted-printable | |
206 | X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 |
|
206 | X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 | |
207 | Message-Id: <c655633f8c87700bb38c.240@ |
|
207 | Message-Id: <c655633f8c87700bb38c.240@ | |
208 | User-Agent: Mercurial-patchbomb |
|
208 | User-Agent: Mercurial-patchbomb | |
209 |
Date: Thu, 01 Jan 1970 00:04:00 |
|
209 | Date: Thu, 01 Jan 1970 00:04:00 -0000 | |
210 | From: quux |
|
210 | From: quux | |
211 | To: foo |
|
211 | To: foo | |
212 | Cc: bar |
|
212 | Cc: bar | |
213 |
|
213 | |||
214 | # HG changeset patch |
|
214 | # HG changeset patch | |
215 | # User test |
|
215 | # User test | |
216 | # Date 4 0 |
|
216 | # Date 4 0 | |
217 | # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376 |
|
217 | # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376 | |
218 | # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a |
|
218 | # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a | |
219 | charset=3Dutf-8; content-transfer-encoding: quoted-printable |
|
219 | charset=3Dutf-8; content-transfer-encoding: quoted-printable | |
220 |
|
220 | |||
221 | diff -r c3c9e37db9f4 -r c655633f8c87 qp |
|
221 | diff -r c3c9e37db9f4 -r c655633f8c87 qp | |
222 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
222 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
223 | +++ b/qp Thu Jan 01 00:00:04 1970 +0000 |
|
223 | +++ b/qp Thu Jan 01 00:00:04 1970 +0000 | |
224 | @@ -0,0 +1,4 @@ |
|
224 | @@ -0,0 +1,4 @@ | |
225 | +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
225 | +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
226 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
226 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
227 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
227 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
228 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
228 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
229 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
229 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
230 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
230 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
231 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
231 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
232 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
232 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
233 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
233 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
234 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
234 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
235 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
235 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
236 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
236 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
237 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
237 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
238 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
|
238 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | |
239 | +foo |
|
239 | +foo | |
240 | + |
|
240 | + | |
241 | +bar |
|
241 | +bar | |
242 |
|
242 | |||
243 |
|
243 | |||
244 | % iso-8859-1 patch |
|
244 | % iso-8859-1 patch | |
245 | adding isolatin |
|
245 | adding isolatin | |
246 | % fake ascii mbox |
|
246 | % fake ascii mbox | |
247 | This patch series consists of 1 patches. |
|
247 | This patch series consists of 1 patches. | |
248 |
|
248 | |||
249 |
|
249 | |||
250 | Writing [PATCH] charset=us-ascii; content-transfer-encoding: 8bit ... |
|
250 | Writing [PATCH] charset=us-ascii; content-transfer-encoding: 8bit ... | |
251 | % md5sum of 8-bit output |
|
251 | % md5sum of 8-bit output | |
252 | 9ea043d8fc43a71045114508baed144b mboxfix |
|
252 | e61684fc0bcccba4204714be37951893 mboxfix | |
253 | % test diffstat for single patch |
|
253 | % test diffstat for single patch | |
254 | This patch series consists of 1 patches. |
|
254 | This patch series consists of 1 patches. | |
255 |
|
255 | |||
256 | c |
|
256 | c | |
257 |
|
257 | |||
258 | c | 1 + |
|
258 | c | 1 + | |
259 | 1 files changed, 1 insertions(+), 0 deletions(-) |
|
259 | 1 files changed, 1 insertions(+), 0 deletions(-) | |
260 |
|
260 | |||
261 |
|
261 | |||
262 | Displaying [PATCH] test ... |
|
262 | Displaying [PATCH] test ... | |
263 | Content-Type: text/plain; charset="us-ascii" |
|
263 | Content-Type: text/plain; charset="us-ascii" | |
264 | MIME-Version: 1.0 |
|
264 | MIME-Version: 1.0 | |
265 | Content-Transfer-Encoding: 7bit |
|
265 | Content-Transfer-Encoding: 7bit | |
266 | Subject: [PATCH] test |
|
266 | Subject: [PATCH] test | |
267 | X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f |
|
267 | X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f | |
268 | Message-Id: <ff2c9fa2018b15fa74b3.60@ |
|
268 | Message-Id: <ff2c9fa2018b15fa74b3.60@ | |
269 | User-Agent: Mercurial-patchbomb |
|
269 | User-Agent: Mercurial-patchbomb | |
270 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
270 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
271 | From: quux |
|
271 | From: quux | |
272 | To: foo |
|
272 | To: foo | |
273 | Cc: bar |
|
273 | Cc: bar | |
274 |
|
274 | |||
275 | c | 1 + |
|
275 | c | 1 + | |
276 | 1 files changed, 1 insertions(+), 0 deletions(-) |
|
276 | 1 files changed, 1 insertions(+), 0 deletions(-) | |
277 |
|
277 | |||
278 |
|
278 | |||
279 | # HG changeset patch |
|
279 | # HG changeset patch | |
280 | # User test |
|
280 | # User test | |
281 | # Date 3 0 |
|
281 | # Date 3 0 | |
282 | # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f |
|
282 | # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f | |
283 | # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
283 | # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
284 | c |
|
284 | c | |
285 |
|
285 | |||
286 | diff -r 97d72e5f12c7 -r ff2c9fa2018b c |
|
286 | diff -r 97d72e5f12c7 -r ff2c9fa2018b c | |
287 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
287 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
288 | +++ b/c Thu Jan 01 00:00:03 1970 +0000 |
|
288 | +++ b/c Thu Jan 01 00:00:03 1970 +0000 | |
289 | @@ -0,0 +1,1 @@ |
|
289 | @@ -0,0 +1,1 @@ | |
290 | +c |
|
290 | +c | |
291 |
|
291 | |||
292 | % test diffstat for multiple patches |
|
292 | % test diffstat for multiple patches | |
293 | This patch series consists of 2 patches. |
|
293 | This patch series consists of 2 patches. | |
294 |
|
294 | |||
295 | a |
|
295 | a | |
296 |
|
296 | |||
297 | a | 1 + |
|
297 | a | 1 + | |
298 | 1 files changed, 1 insertions(+), 0 deletions(-) |
|
298 | 1 files changed, 1 insertions(+), 0 deletions(-) | |
299 |
|
299 | |||
300 | b |
|
300 | b | |
301 |
|
301 | |||
302 | b | 1 + |
|
302 | b | 1 + | |
303 | 1 files changed, 1 insertions(+), 0 deletions(-) |
|
303 | 1 files changed, 1 insertions(+), 0 deletions(-) | |
304 |
|
304 | |||
305 | Final summary: |
|
305 | Final summary: | |
306 |
|
306 | |||
307 | a | 1 + |
|
307 | a | 1 + | |
308 | b | 1 + |
|
308 | b | 1 + | |
309 | 2 files changed, 2 insertions(+), 0 deletions(-) |
|
309 | 2 files changed, 2 insertions(+), 0 deletions(-) | |
310 |
|
310 | |||
311 |
|
311 | |||
312 | Write the introductory message for the patch series. |
|
312 | Write the introductory message for the patch series. | |
313 |
|
313 | |||
314 |
|
314 | |||
315 | Displaying [PATCH 0 of 2] test ... |
|
315 | Displaying [PATCH 0 of 2] test ... | |
316 | Content-Type: text/plain; charset="us-ascii" |
|
316 | Content-Type: text/plain; charset="us-ascii" | |
317 | MIME-Version: 1.0 |
|
317 | MIME-Version: 1.0 | |
318 | Content-Transfer-Encoding: 7bit |
|
318 | Content-Transfer-Encoding: 7bit | |
319 | Subject: [PATCH 0 of 2] test |
|
319 | Subject: [PATCH 0 of 2] test | |
320 | Message-Id: <patchbomb.60@ |
|
320 | Message-Id: <patchbomb.60@ | |
321 | User-Agent: Mercurial-patchbomb |
|
321 | User-Agent: Mercurial-patchbomb | |
322 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
322 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
323 | From: quux |
|
323 | From: quux | |
324 | To: foo |
|
324 | To: foo | |
325 | Cc: bar |
|
325 | Cc: bar | |
326 |
|
326 | |||
327 |
|
327 | |||
328 | a | 1 + |
|
328 | a | 1 + | |
329 | b | 1 + |
|
329 | b | 1 + | |
330 | 2 files changed, 2 insertions(+), 0 deletions(-) |
|
330 | 2 files changed, 2 insertions(+), 0 deletions(-) | |
331 |
|
331 | |||
332 | Displaying [PATCH 1 of 2] a ... |
|
332 | Displaying [PATCH 1 of 2] a ... | |
333 | Content-Type: text/plain; charset="us-ascii" |
|
333 | Content-Type: text/plain; charset="us-ascii" | |
334 | MIME-Version: 1.0 |
|
334 | MIME-Version: 1.0 | |
335 | Content-Transfer-Encoding: 7bit |
|
335 | Content-Transfer-Encoding: 7bit | |
336 | Subject: [PATCH 1 of 2] a |
|
336 | Subject: [PATCH 1 of 2] a | |
337 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
337 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
338 | Message-Id: <8580ff50825a50c8f716.61@ |
|
338 | Message-Id: <8580ff50825a50c8f716.61@ | |
339 | In-Reply-To: <patchbomb.60@ |
|
339 | In-Reply-To: <patchbomb.60@ | |
340 | References: <patchbomb.60@ |
|
340 | References: <patchbomb.60@ | |
341 | User-Agent: Mercurial-patchbomb |
|
341 | User-Agent: Mercurial-patchbomb | |
342 |
Date: Thu, 01 Jan 1970 00:01:01 |
|
342 | Date: Thu, 01 Jan 1970 00:01:01 -0000 | |
343 | From: quux |
|
343 | From: quux | |
344 | To: foo |
|
344 | To: foo | |
345 | Cc: bar |
|
345 | Cc: bar | |
346 |
|
346 | |||
347 | a | 1 + |
|
347 | a | 1 + | |
348 | 1 files changed, 1 insertions(+), 0 deletions(-) |
|
348 | 1 files changed, 1 insertions(+), 0 deletions(-) | |
349 |
|
349 | |||
350 |
|
350 | |||
351 | # HG changeset patch |
|
351 | # HG changeset patch | |
352 | # User test |
|
352 | # User test | |
353 | # Date 1 0 |
|
353 | # Date 1 0 | |
354 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
354 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
355 | # Parent 0000000000000000000000000000000000000000 |
|
355 | # Parent 0000000000000000000000000000000000000000 | |
356 | a |
|
356 | a | |
357 |
|
357 | |||
358 | diff -r 000000000000 -r 8580ff50825a a |
|
358 | diff -r 000000000000 -r 8580ff50825a a | |
359 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
359 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
360 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 |
|
360 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
361 | @@ -0,0 +1,1 @@ |
|
361 | @@ -0,0 +1,1 @@ | |
362 | +a |
|
362 | +a | |
363 |
|
363 | |||
364 | Displaying [PATCH 2 of 2] b ... |
|
364 | Displaying [PATCH 2 of 2] b ... | |
365 | Content-Type: text/plain; charset="us-ascii" |
|
365 | Content-Type: text/plain; charset="us-ascii" | |
366 | MIME-Version: 1.0 |
|
366 | MIME-Version: 1.0 | |
367 | Content-Transfer-Encoding: 7bit |
|
367 | Content-Transfer-Encoding: 7bit | |
368 | Subject: [PATCH 2 of 2] b |
|
368 | Subject: [PATCH 2 of 2] b | |
369 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
369 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
370 | Message-Id: <97d72e5f12c7e84f8506.62@ |
|
370 | Message-Id: <97d72e5f12c7e84f8506.62@ | |
371 | In-Reply-To: <patchbomb.60@ |
|
371 | In-Reply-To: <patchbomb.60@ | |
372 | References: <patchbomb.60@ |
|
372 | References: <patchbomb.60@ | |
373 | User-Agent: Mercurial-patchbomb |
|
373 | User-Agent: Mercurial-patchbomb | |
374 |
Date: Thu, 01 Jan 1970 00:01:02 |
|
374 | Date: Thu, 01 Jan 1970 00:01:02 -0000 | |
375 | From: quux |
|
375 | From: quux | |
376 | To: foo |
|
376 | To: foo | |
377 | Cc: bar |
|
377 | Cc: bar | |
378 |
|
378 | |||
379 | b | 1 + |
|
379 | b | 1 + | |
380 | 1 files changed, 1 insertions(+), 0 deletions(-) |
|
380 | 1 files changed, 1 insertions(+), 0 deletions(-) | |
381 |
|
381 | |||
382 |
|
382 | |||
383 | # HG changeset patch |
|
383 | # HG changeset patch | |
384 | # User test |
|
384 | # User test | |
385 | # Date 2 0 |
|
385 | # Date 2 0 | |
386 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
386 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
387 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
387 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
388 | b |
|
388 | b | |
389 |
|
389 | |||
390 | diff -r 8580ff50825a -r 97d72e5f12c7 b |
|
390 | diff -r 8580ff50825a -r 97d72e5f12c7 b | |
391 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
391 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
392 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 |
|
392 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 | |
393 | @@ -0,0 +1,1 @@ |
|
393 | @@ -0,0 +1,1 @@ | |
394 | +b |
|
394 | +b | |
395 |
|
395 | |||
396 | % test inline for single patch |
|
396 | % test inline for single patch | |
397 | This patch series consists of 1 patches. |
|
397 | This patch series consists of 1 patches. | |
398 |
|
398 | |||
399 |
|
399 | |||
400 | Displaying [PATCH] test ... |
|
400 | Displaying [PATCH] test ... | |
401 | Content-Type: multipart/mixed; boundary="=== |
|
401 | Content-Type: multipart/mixed; boundary="=== | |
402 | MIME-Version: 1.0 |
|
402 | MIME-Version: 1.0 | |
403 | Subject: [PATCH] test |
|
403 | Subject: [PATCH] test | |
404 | X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f |
|
404 | X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f | |
405 | Message-Id: <ff2c9fa2018b15fa74b3.60@ |
|
405 | Message-Id: <ff2c9fa2018b15fa74b3.60@ | |
406 | User-Agent: Mercurial-patchbomb |
|
406 | User-Agent: Mercurial-patchbomb | |
407 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
407 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
408 | From: quux |
|
408 | From: quux | |
409 | To: foo |
|
409 | To: foo | |
410 | Cc: bar |
|
410 | Cc: bar | |
411 |
|
411 | |||
412 | --=== |
|
412 | --=== | |
413 | Content-Type: text/x-patch; charset="us-ascii" |
|
413 | Content-Type: text/x-patch; charset="us-ascii" | |
414 | MIME-Version: 1.0 |
|
414 | MIME-Version: 1.0 | |
415 | Content-Transfer-Encoding: 7bit |
|
415 | Content-Transfer-Encoding: 7bit | |
416 | Content-Disposition: inline; filename=t2.patch |
|
416 | Content-Disposition: inline; filename=t2.patch | |
417 |
|
417 | |||
418 | # HG changeset patch |
|
418 | # HG changeset patch | |
419 | # User test |
|
419 | # User test | |
420 | # Date 3 0 |
|
420 | # Date 3 0 | |
421 | # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f |
|
421 | # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f | |
422 | # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
422 | # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
423 | c |
|
423 | c | |
424 |
|
424 | |||
425 | diff -r 97d72e5f12c7 -r ff2c9fa2018b c |
|
425 | diff -r 97d72e5f12c7 -r ff2c9fa2018b c | |
426 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
426 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
427 | +++ b/c Thu Jan 01 00:00:03 1970 +0000 |
|
427 | +++ b/c Thu Jan 01 00:00:03 1970 +0000 | |
428 | @@ -0,0 +1,1 @@ |
|
428 | @@ -0,0 +1,1 @@ | |
429 | +c |
|
429 | +c | |
430 |
|
430 | |||
431 | --=== |
|
431 | --=== | |
432 | % test inline for single patch (quoted-printable) |
|
432 | % test inline for single patch (quoted-printable) | |
433 | This patch series consists of 1 patches. |
|
433 | This patch series consists of 1 patches. | |
434 |
|
434 | |||
435 |
|
435 | |||
436 | Displaying [PATCH] test ... |
|
436 | Displaying [PATCH] test ... | |
437 | Content-Type: multipart/mixed; boundary="=== |
|
437 | Content-Type: multipart/mixed; boundary="=== | |
438 | MIME-Version: 1.0 |
|
438 | MIME-Version: 1.0 | |
439 | Subject: [PATCH] test |
|
439 | Subject: [PATCH] test | |
440 | X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 |
|
440 | X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 | |
441 | Message-Id: <c655633f8c87700bb38c.60@ |
|
441 | Message-Id: <c655633f8c87700bb38c.60@ | |
442 | User-Agent: Mercurial-patchbomb |
|
442 | User-Agent: Mercurial-patchbomb | |
443 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
443 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
444 | From: quux |
|
444 | From: quux | |
445 | To: foo |
|
445 | To: foo | |
446 | Cc: bar |
|
446 | Cc: bar | |
447 |
|
447 | |||
448 | --=== |
|
448 | --=== | |
449 | Content-Type: text/x-patch; charset="us-ascii" |
|
449 | Content-Type: text/x-patch; charset="us-ascii" | |
450 | MIME-Version: 1.0 |
|
450 | MIME-Version: 1.0 | |
451 | Content-Transfer-Encoding: quoted-printable |
|
451 | Content-Transfer-Encoding: quoted-printable | |
452 | Content-Disposition: inline; filename=t2.patch |
|
452 | Content-Disposition: inline; filename=t2.patch | |
453 |
|
453 | |||
454 | # HG changeset patch |
|
454 | # HG changeset patch | |
455 | # User test |
|
455 | # User test | |
456 | # Date 4 0 |
|
456 | # Date 4 0 | |
457 | # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376 |
|
457 | # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376 | |
458 | # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a |
|
458 | # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a | |
459 | charset=3Dutf-8; content-transfer-encoding: quoted-printable |
|
459 | charset=3Dutf-8; content-transfer-encoding: quoted-printable | |
460 |
|
460 | |||
461 | diff -r c3c9e37db9f4 -r c655633f8c87 qp |
|
461 | diff -r c3c9e37db9f4 -r c655633f8c87 qp | |
462 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
462 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
463 | +++ b/qp Thu Jan 01 00:00:04 1970 +0000 |
|
463 | +++ b/qp Thu Jan 01 00:00:04 1970 +0000 | |
464 | @@ -0,0 +1,4 @@ |
|
464 | @@ -0,0 +1,4 @@ | |
465 | +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
465 | +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
466 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
466 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
467 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
467 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
468 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
468 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
469 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
469 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
470 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
470 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
471 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
471 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
472 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
472 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
473 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
473 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
474 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
474 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
475 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
475 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
476 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
476 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
477 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
477 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
478 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
|
478 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | |
479 | +foo |
|
479 | +foo | |
480 | + |
|
480 | + | |
481 | +bar |
|
481 | +bar | |
482 |
|
482 | |||
483 | --=== |
|
483 | --=== | |
484 | % test inline for multiple patches |
|
484 | % test inline for multiple patches | |
485 | This patch series consists of 3 patches. |
|
485 | This patch series consists of 3 patches. | |
486 |
|
486 | |||
487 |
|
487 | |||
488 | Write the introductory message for the patch series. |
|
488 | Write the introductory message for the patch series. | |
489 |
|
489 | |||
490 |
|
490 | |||
491 | Displaying [PATCH 0 of 3] test ... |
|
491 | Displaying [PATCH 0 of 3] test ... | |
492 | Content-Type: text/plain; charset="us-ascii" |
|
492 | Content-Type: text/plain; charset="us-ascii" | |
493 | MIME-Version: 1.0 |
|
493 | MIME-Version: 1.0 | |
494 | Content-Transfer-Encoding: 7bit |
|
494 | Content-Transfer-Encoding: 7bit | |
495 | Subject: [PATCH 0 of 3] test |
|
495 | Subject: [PATCH 0 of 3] test | |
496 | Message-Id: <patchbomb.60@ |
|
496 | Message-Id: <patchbomb.60@ | |
497 | User-Agent: Mercurial-patchbomb |
|
497 | User-Agent: Mercurial-patchbomb | |
498 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
498 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
499 | From: quux |
|
499 | From: quux | |
500 | To: foo |
|
500 | To: foo | |
501 | Cc: bar |
|
501 | Cc: bar | |
502 |
|
502 | |||
503 |
|
503 | |||
504 | Displaying [PATCH 1 of 3] a ... |
|
504 | Displaying [PATCH 1 of 3] a ... | |
505 | Content-Type: multipart/mixed; boundary="=== |
|
505 | Content-Type: multipart/mixed; boundary="=== | |
506 | MIME-Version: 1.0 |
|
506 | MIME-Version: 1.0 | |
507 | Subject: [PATCH 1 of 3] a |
|
507 | Subject: [PATCH 1 of 3] a | |
508 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
508 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
509 | Message-Id: <8580ff50825a50c8f716.61@ |
|
509 | Message-Id: <8580ff50825a50c8f716.61@ | |
510 | In-Reply-To: <patchbomb.60@ |
|
510 | In-Reply-To: <patchbomb.60@ | |
511 | References: <patchbomb.60@ |
|
511 | References: <patchbomb.60@ | |
512 | User-Agent: Mercurial-patchbomb |
|
512 | User-Agent: Mercurial-patchbomb | |
513 |
Date: Thu, 01 Jan 1970 00:01:01 |
|
513 | Date: Thu, 01 Jan 1970 00:01:01 -0000 | |
514 | From: quux |
|
514 | From: quux | |
515 | To: foo |
|
515 | To: foo | |
516 | Cc: bar |
|
516 | Cc: bar | |
517 |
|
517 | |||
518 | --=== |
|
518 | --=== | |
519 | Content-Type: text/x-patch; charset="us-ascii" |
|
519 | Content-Type: text/x-patch; charset="us-ascii" | |
520 | MIME-Version: 1.0 |
|
520 | MIME-Version: 1.0 | |
521 | Content-Transfer-Encoding: 7bit |
|
521 | Content-Transfer-Encoding: 7bit | |
522 | Content-Disposition: inline; filename=t2-1.patch |
|
522 | Content-Disposition: inline; filename=t2-1.patch | |
523 |
|
523 | |||
524 | # HG changeset patch |
|
524 | # HG changeset patch | |
525 | # User test |
|
525 | # User test | |
526 | # Date 1 0 |
|
526 | # Date 1 0 | |
527 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
527 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
528 | # Parent 0000000000000000000000000000000000000000 |
|
528 | # Parent 0000000000000000000000000000000000000000 | |
529 | a |
|
529 | a | |
530 |
|
530 | |||
531 | diff -r 000000000000 -r 8580ff50825a a |
|
531 | diff -r 000000000000 -r 8580ff50825a a | |
532 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
532 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
533 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 |
|
533 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
534 | @@ -0,0 +1,1 @@ |
|
534 | @@ -0,0 +1,1 @@ | |
535 | +a |
|
535 | +a | |
536 |
|
536 | |||
537 | --=== |
|
537 | --=== | |
538 | Displaying [PATCH 2 of 3] b ... |
|
538 | Displaying [PATCH 2 of 3] b ... | |
539 | Content-Type: multipart/mixed; boundary="=== |
|
539 | Content-Type: multipart/mixed; boundary="=== | |
540 | MIME-Version: 1.0 |
|
540 | MIME-Version: 1.0 | |
541 | Subject: [PATCH 2 of 3] b |
|
541 | Subject: [PATCH 2 of 3] b | |
542 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
542 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
543 | Message-Id: <97d72e5f12c7e84f8506.62@ |
|
543 | Message-Id: <97d72e5f12c7e84f8506.62@ | |
544 | In-Reply-To: <patchbomb.60@ |
|
544 | In-Reply-To: <patchbomb.60@ | |
545 | References: <patchbomb.60@ |
|
545 | References: <patchbomb.60@ | |
546 | User-Agent: Mercurial-patchbomb |
|
546 | User-Agent: Mercurial-patchbomb | |
547 |
Date: Thu, 01 Jan 1970 00:01:02 |
|
547 | Date: Thu, 01 Jan 1970 00:01:02 -0000 | |
548 | From: quux |
|
548 | From: quux | |
549 | To: foo |
|
549 | To: foo | |
550 | Cc: bar |
|
550 | Cc: bar | |
551 |
|
551 | |||
552 | --=== |
|
552 | --=== | |
553 | Content-Type: text/x-patch; charset="us-ascii" |
|
553 | Content-Type: text/x-patch; charset="us-ascii" | |
554 | MIME-Version: 1.0 |
|
554 | MIME-Version: 1.0 | |
555 | Content-Transfer-Encoding: 7bit |
|
555 | Content-Transfer-Encoding: 7bit | |
556 | Content-Disposition: inline; filename=t2-2.patch |
|
556 | Content-Disposition: inline; filename=t2-2.patch | |
557 |
|
557 | |||
558 | # HG changeset patch |
|
558 | # HG changeset patch | |
559 | # User test |
|
559 | # User test | |
560 | # Date 2 0 |
|
560 | # Date 2 0 | |
561 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
561 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
562 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
562 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
563 | b |
|
563 | b | |
564 |
|
564 | |||
565 | diff -r 8580ff50825a -r 97d72e5f12c7 b |
|
565 | diff -r 8580ff50825a -r 97d72e5f12c7 b | |
566 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
566 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
567 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 |
|
567 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 | |
568 | @@ -0,0 +1,1 @@ |
|
568 | @@ -0,0 +1,1 @@ | |
569 | +b |
|
569 | +b | |
570 |
|
570 | |||
571 | --=== |
|
571 | --=== | |
572 | Displaying [PATCH 3 of 3] charset=utf-8; content-transfer-encoding: quoted-printable ... |
|
572 | Displaying [PATCH 3 of 3] charset=utf-8; content-transfer-encoding: quoted-printable ... | |
573 | Content-Type: multipart/mixed; boundary="=== |
|
573 | Content-Type: multipart/mixed; boundary="=== | |
574 | MIME-Version: 1.0 |
|
574 | MIME-Version: 1.0 | |
575 | Subject: [PATCH 3 of 3] charset=utf-8; |
|
575 | Subject: [PATCH 3 of 3] charset=utf-8; | |
576 | content-transfer-encoding: quoted-printable |
|
576 | content-transfer-encoding: quoted-printable | |
577 | X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 |
|
577 | X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 | |
578 | Message-Id: <c655633f8c87700bb38c.63@ |
|
578 | Message-Id: <c655633f8c87700bb38c.63@ | |
579 | In-Reply-To: <patchbomb.60@ |
|
579 | In-Reply-To: <patchbomb.60@ | |
580 | References: <patchbomb.60@ |
|
580 | References: <patchbomb.60@ | |
581 | User-Agent: Mercurial-patchbomb |
|
581 | User-Agent: Mercurial-patchbomb | |
582 |
Date: Thu, 01 Jan 1970 00:01:03 |
|
582 | Date: Thu, 01 Jan 1970 00:01:03 -0000 | |
583 | From: quux |
|
583 | From: quux | |
584 | To: foo |
|
584 | To: foo | |
585 | Cc: bar |
|
585 | Cc: bar | |
586 |
|
586 | |||
587 | --=== |
|
587 | --=== | |
588 | Content-Type: text/x-patch; charset="us-ascii" |
|
588 | Content-Type: text/x-patch; charset="us-ascii" | |
589 | MIME-Version: 1.0 |
|
589 | MIME-Version: 1.0 | |
590 | Content-Transfer-Encoding: quoted-printable |
|
590 | Content-Transfer-Encoding: quoted-printable | |
591 | Content-Disposition: inline; filename=t2-3.patch |
|
591 | Content-Disposition: inline; filename=t2-3.patch | |
592 |
|
592 | |||
593 | # HG changeset patch |
|
593 | # HG changeset patch | |
594 | # User test |
|
594 | # User test | |
595 | # Date 4 0 |
|
595 | # Date 4 0 | |
596 | # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376 |
|
596 | # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376 | |
597 | # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a |
|
597 | # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a | |
598 | charset=3Dutf-8; content-transfer-encoding: quoted-printable |
|
598 | charset=3Dutf-8; content-transfer-encoding: quoted-printable | |
599 |
|
599 | |||
600 | diff -r c3c9e37db9f4 -r c655633f8c87 qp |
|
600 | diff -r c3c9e37db9f4 -r c655633f8c87 qp | |
601 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
601 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
602 | +++ b/qp Thu Jan 01 00:00:04 1970 +0000 |
|
602 | +++ b/qp Thu Jan 01 00:00:04 1970 +0000 | |
603 | @@ -0,0 +1,4 @@ |
|
603 | @@ -0,0 +1,4 @@ | |
604 | +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
604 | +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
605 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
605 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
606 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
606 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
607 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
607 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
608 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
608 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
609 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
609 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
610 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
610 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
611 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
611 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
612 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
612 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
613 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
613 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
614 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
614 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
615 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
615 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
616 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
616 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
617 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
|
617 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | |
618 | +foo |
|
618 | +foo | |
619 | + |
|
619 | + | |
620 | +bar |
|
620 | +bar | |
621 |
|
621 | |||
622 | --=== |
|
622 | --=== | |
623 | % test attach for single patch |
|
623 | % test attach for single patch | |
624 | This patch series consists of 1 patches. |
|
624 | This patch series consists of 1 patches. | |
625 |
|
625 | |||
626 |
|
626 | |||
627 | Displaying [PATCH] test ... |
|
627 | Displaying [PATCH] test ... | |
628 | Content-Type: multipart/mixed; boundary="=== |
|
628 | Content-Type: multipart/mixed; boundary="=== | |
629 | MIME-Version: 1.0 |
|
629 | MIME-Version: 1.0 | |
630 | Subject: [PATCH] test |
|
630 | Subject: [PATCH] test | |
631 | X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f |
|
631 | X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f | |
632 | Message-Id: <ff2c9fa2018b15fa74b3.60@ |
|
632 | Message-Id: <ff2c9fa2018b15fa74b3.60@ | |
633 | User-Agent: Mercurial-patchbomb |
|
633 | User-Agent: Mercurial-patchbomb | |
634 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
634 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
635 | From: quux |
|
635 | From: quux | |
636 | To: foo |
|
636 | To: foo | |
637 | Cc: bar |
|
637 | Cc: bar | |
638 |
|
638 | |||
639 | --=== |
|
639 | --=== | |
640 | Content-Type: text/plain; charset="us-ascii" |
|
640 | Content-Type: text/plain; charset="us-ascii" | |
641 | MIME-Version: 1.0 |
|
641 | MIME-Version: 1.0 | |
642 | Content-Transfer-Encoding: 7bit |
|
642 | Content-Transfer-Encoding: 7bit | |
643 |
|
643 | |||
644 | Patch subject is complete summary. |
|
644 | Patch subject is complete summary. | |
645 |
|
645 | |||
646 |
|
646 | |||
647 |
|
647 | |||
648 | --=== |
|
648 | --=== | |
649 | Content-Type: text/x-patch; charset="us-ascii" |
|
649 | Content-Type: text/x-patch; charset="us-ascii" | |
650 | MIME-Version: 1.0 |
|
650 | MIME-Version: 1.0 | |
651 | Content-Transfer-Encoding: 7bit |
|
651 | Content-Transfer-Encoding: 7bit | |
652 | Content-Disposition: attachment; filename=t2.patch |
|
652 | Content-Disposition: attachment; filename=t2.patch | |
653 |
|
653 | |||
654 | # HG changeset patch |
|
654 | # HG changeset patch | |
655 | # User test |
|
655 | # User test | |
656 | # Date 3 0 |
|
656 | # Date 3 0 | |
657 | # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f |
|
657 | # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f | |
658 | # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
658 | # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
659 | c |
|
659 | c | |
660 |
|
660 | |||
661 | diff -r 97d72e5f12c7 -r ff2c9fa2018b c |
|
661 | diff -r 97d72e5f12c7 -r ff2c9fa2018b c | |
662 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
662 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
663 | +++ b/c Thu Jan 01 00:00:03 1970 +0000 |
|
663 | +++ b/c Thu Jan 01 00:00:03 1970 +0000 | |
664 | @@ -0,0 +1,1 @@ |
|
664 | @@ -0,0 +1,1 @@ | |
665 | +c |
|
665 | +c | |
666 |
|
666 | |||
667 | --=== |
|
667 | --=== | |
668 | % test attach for single patch (quoted-printable) |
|
668 | % test attach for single patch (quoted-printable) | |
669 | This patch series consists of 1 patches. |
|
669 | This patch series consists of 1 patches. | |
670 |
|
670 | |||
671 |
|
671 | |||
672 | Displaying [PATCH] test ... |
|
672 | Displaying [PATCH] test ... | |
673 | Content-Type: multipart/mixed; boundary="=== |
|
673 | Content-Type: multipart/mixed; boundary="=== | |
674 | MIME-Version: 1.0 |
|
674 | MIME-Version: 1.0 | |
675 | Subject: [PATCH] test |
|
675 | Subject: [PATCH] test | |
676 | X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 |
|
676 | X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 | |
677 | Message-Id: <c655633f8c87700bb38c.60@ |
|
677 | Message-Id: <c655633f8c87700bb38c.60@ | |
678 | User-Agent: Mercurial-patchbomb |
|
678 | User-Agent: Mercurial-patchbomb | |
679 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
679 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
680 | From: quux |
|
680 | From: quux | |
681 | To: foo |
|
681 | To: foo | |
682 | Cc: bar |
|
682 | Cc: bar | |
683 |
|
683 | |||
684 | --=== |
|
684 | --=== | |
685 | Content-Type: text/plain; charset="us-ascii" |
|
685 | Content-Type: text/plain; charset="us-ascii" | |
686 | MIME-Version: 1.0 |
|
686 | MIME-Version: 1.0 | |
687 | Content-Transfer-Encoding: 7bit |
|
687 | Content-Transfer-Encoding: 7bit | |
688 |
|
688 | |||
689 | Patch subject is complete summary. |
|
689 | Patch subject is complete summary. | |
690 |
|
690 | |||
691 |
|
691 | |||
692 |
|
692 | |||
693 | --=== |
|
693 | --=== | |
694 | Content-Type: text/x-patch; charset="us-ascii" |
|
694 | Content-Type: text/x-patch; charset="us-ascii" | |
695 | MIME-Version: 1.0 |
|
695 | MIME-Version: 1.0 | |
696 | Content-Transfer-Encoding: quoted-printable |
|
696 | Content-Transfer-Encoding: quoted-printable | |
697 | Content-Disposition: attachment; filename=t2.patch |
|
697 | Content-Disposition: attachment; filename=t2.patch | |
698 |
|
698 | |||
699 | # HG changeset patch |
|
699 | # HG changeset patch | |
700 | # User test |
|
700 | # User test | |
701 | # Date 4 0 |
|
701 | # Date 4 0 | |
702 | # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376 |
|
702 | # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376 | |
703 | # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a |
|
703 | # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a | |
704 | charset=3Dutf-8; content-transfer-encoding: quoted-printable |
|
704 | charset=3Dutf-8; content-transfer-encoding: quoted-printable | |
705 |
|
705 | |||
706 | diff -r c3c9e37db9f4 -r c655633f8c87 qp |
|
706 | diff -r c3c9e37db9f4 -r c655633f8c87 qp | |
707 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
707 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
708 | +++ b/qp Thu Jan 01 00:00:04 1970 +0000 |
|
708 | +++ b/qp Thu Jan 01 00:00:04 1970 +0000 | |
709 | @@ -0,0 +1,4 @@ |
|
709 | @@ -0,0 +1,4 @@ | |
710 | +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
710 | +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
711 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
711 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
712 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
712 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
713 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
713 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
714 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
714 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
715 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
715 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
716 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
716 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
717 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
717 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
718 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
718 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
719 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
719 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
720 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
720 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
721 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
721 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
722 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
722 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
723 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
|
723 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | |
724 | +foo |
|
724 | +foo | |
725 | + |
|
725 | + | |
726 | +bar |
|
726 | +bar | |
727 |
|
727 | |||
728 | --=== |
|
728 | --=== | |
729 | % test attach for multiple patches |
|
729 | % test attach for multiple patches | |
730 | This patch series consists of 3 patches. |
|
730 | This patch series consists of 3 patches. | |
731 |
|
731 | |||
732 |
|
732 | |||
733 | Write the introductory message for the patch series. |
|
733 | Write the introductory message for the patch series. | |
734 |
|
734 | |||
735 |
|
735 | |||
736 | Displaying [PATCH 0 of 3] test ... |
|
736 | Displaying [PATCH 0 of 3] test ... | |
737 | Content-Type: text/plain; charset="us-ascii" |
|
737 | Content-Type: text/plain; charset="us-ascii" | |
738 | MIME-Version: 1.0 |
|
738 | MIME-Version: 1.0 | |
739 | Content-Transfer-Encoding: 7bit |
|
739 | Content-Transfer-Encoding: 7bit | |
740 | Subject: [PATCH 0 of 3] test |
|
740 | Subject: [PATCH 0 of 3] test | |
741 | Message-Id: <patchbomb.60@ |
|
741 | Message-Id: <patchbomb.60@ | |
742 | User-Agent: Mercurial-patchbomb |
|
742 | User-Agent: Mercurial-patchbomb | |
743 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
743 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
744 | From: quux |
|
744 | From: quux | |
745 | To: foo |
|
745 | To: foo | |
746 | Cc: bar |
|
746 | Cc: bar | |
747 |
|
747 | |||
748 |
|
748 | |||
749 | Displaying [PATCH 1 of 3] a ... |
|
749 | Displaying [PATCH 1 of 3] a ... | |
750 | Content-Type: multipart/mixed; boundary="=== |
|
750 | Content-Type: multipart/mixed; boundary="=== | |
751 | MIME-Version: 1.0 |
|
751 | MIME-Version: 1.0 | |
752 | Subject: [PATCH 1 of 3] a |
|
752 | Subject: [PATCH 1 of 3] a | |
753 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
753 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
754 | Message-Id: <8580ff50825a50c8f716.61@ |
|
754 | Message-Id: <8580ff50825a50c8f716.61@ | |
755 | In-Reply-To: <patchbomb.60@ |
|
755 | In-Reply-To: <patchbomb.60@ | |
756 | References: <patchbomb.60@ |
|
756 | References: <patchbomb.60@ | |
757 | User-Agent: Mercurial-patchbomb |
|
757 | User-Agent: Mercurial-patchbomb | |
758 |
Date: Thu, 01 Jan 1970 00:01:01 |
|
758 | Date: Thu, 01 Jan 1970 00:01:01 -0000 | |
759 | From: quux |
|
759 | From: quux | |
760 | To: foo |
|
760 | To: foo | |
761 | Cc: bar |
|
761 | Cc: bar | |
762 |
|
762 | |||
763 | --=== |
|
763 | --=== | |
764 | Content-Type: text/plain; charset="us-ascii" |
|
764 | Content-Type: text/plain; charset="us-ascii" | |
765 | MIME-Version: 1.0 |
|
765 | MIME-Version: 1.0 | |
766 | Content-Transfer-Encoding: 7bit |
|
766 | Content-Transfer-Encoding: 7bit | |
767 |
|
767 | |||
768 | Patch subject is complete summary. |
|
768 | Patch subject is complete summary. | |
769 |
|
769 | |||
770 |
|
770 | |||
771 |
|
771 | |||
772 | --=== |
|
772 | --=== | |
773 | Content-Type: text/x-patch; charset="us-ascii" |
|
773 | Content-Type: text/x-patch; charset="us-ascii" | |
774 | MIME-Version: 1.0 |
|
774 | MIME-Version: 1.0 | |
775 | Content-Transfer-Encoding: 7bit |
|
775 | Content-Transfer-Encoding: 7bit | |
776 | Content-Disposition: attachment; filename=t2-1.patch |
|
776 | Content-Disposition: attachment; filename=t2-1.patch | |
777 |
|
777 | |||
778 | # HG changeset patch |
|
778 | # HG changeset patch | |
779 | # User test |
|
779 | # User test | |
780 | # Date 1 0 |
|
780 | # Date 1 0 | |
781 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
781 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
782 | # Parent 0000000000000000000000000000000000000000 |
|
782 | # Parent 0000000000000000000000000000000000000000 | |
783 | a |
|
783 | a | |
784 |
|
784 | |||
785 | diff -r 000000000000 -r 8580ff50825a a |
|
785 | diff -r 000000000000 -r 8580ff50825a a | |
786 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
786 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
787 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 |
|
787 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
788 | @@ -0,0 +1,1 @@ |
|
788 | @@ -0,0 +1,1 @@ | |
789 | +a |
|
789 | +a | |
790 |
|
790 | |||
791 | --=== |
|
791 | --=== | |
792 | Displaying [PATCH 2 of 3] b ... |
|
792 | Displaying [PATCH 2 of 3] b ... | |
793 | Content-Type: multipart/mixed; boundary="=== |
|
793 | Content-Type: multipart/mixed; boundary="=== | |
794 | MIME-Version: 1.0 |
|
794 | MIME-Version: 1.0 | |
795 | Subject: [PATCH 2 of 3] b |
|
795 | Subject: [PATCH 2 of 3] b | |
796 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
796 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
797 | Message-Id: <97d72e5f12c7e84f8506.62@ |
|
797 | Message-Id: <97d72e5f12c7e84f8506.62@ | |
798 | In-Reply-To: <patchbomb.60@ |
|
798 | In-Reply-To: <patchbomb.60@ | |
799 | References: <patchbomb.60@ |
|
799 | References: <patchbomb.60@ | |
800 | User-Agent: Mercurial-patchbomb |
|
800 | User-Agent: Mercurial-patchbomb | |
801 |
Date: Thu, 01 Jan 1970 00:01:02 |
|
801 | Date: Thu, 01 Jan 1970 00:01:02 -0000 | |
802 | From: quux |
|
802 | From: quux | |
803 | To: foo |
|
803 | To: foo | |
804 | Cc: bar |
|
804 | Cc: bar | |
805 |
|
805 | |||
806 | --=== |
|
806 | --=== | |
807 | Content-Type: text/plain; charset="us-ascii" |
|
807 | Content-Type: text/plain; charset="us-ascii" | |
808 | MIME-Version: 1.0 |
|
808 | MIME-Version: 1.0 | |
809 | Content-Transfer-Encoding: 7bit |
|
809 | Content-Transfer-Encoding: 7bit | |
810 |
|
810 | |||
811 | Patch subject is complete summary. |
|
811 | Patch subject is complete summary. | |
812 |
|
812 | |||
813 |
|
813 | |||
814 |
|
814 | |||
815 | --=== |
|
815 | --=== | |
816 | Content-Type: text/x-patch; charset="us-ascii" |
|
816 | Content-Type: text/x-patch; charset="us-ascii" | |
817 | MIME-Version: 1.0 |
|
817 | MIME-Version: 1.0 | |
818 | Content-Transfer-Encoding: 7bit |
|
818 | Content-Transfer-Encoding: 7bit | |
819 | Content-Disposition: attachment; filename=t2-2.patch |
|
819 | Content-Disposition: attachment; filename=t2-2.patch | |
820 |
|
820 | |||
821 | # HG changeset patch |
|
821 | # HG changeset patch | |
822 | # User test |
|
822 | # User test | |
823 | # Date 2 0 |
|
823 | # Date 2 0 | |
824 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
824 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
825 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
825 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
826 | b |
|
826 | b | |
827 |
|
827 | |||
828 | diff -r 8580ff50825a -r 97d72e5f12c7 b |
|
828 | diff -r 8580ff50825a -r 97d72e5f12c7 b | |
829 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
829 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
830 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 |
|
830 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 | |
831 | @@ -0,0 +1,1 @@ |
|
831 | @@ -0,0 +1,1 @@ | |
832 | +b |
|
832 | +b | |
833 |
|
833 | |||
834 | --=== |
|
834 | --=== | |
835 | Displaying [PATCH 3 of 3] charset=utf-8; content-transfer-encoding: quoted-printable ... |
|
835 | Displaying [PATCH 3 of 3] charset=utf-8; content-transfer-encoding: quoted-printable ... | |
836 | Content-Type: multipart/mixed; boundary="=== |
|
836 | Content-Type: multipart/mixed; boundary="=== | |
837 | MIME-Version: 1.0 |
|
837 | MIME-Version: 1.0 | |
838 | Subject: [PATCH 3 of 3] charset=utf-8; |
|
838 | Subject: [PATCH 3 of 3] charset=utf-8; | |
839 | content-transfer-encoding: quoted-printable |
|
839 | content-transfer-encoding: quoted-printable | |
840 | X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 |
|
840 | X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 | |
841 | Message-Id: <c655633f8c87700bb38c.63@ |
|
841 | Message-Id: <c655633f8c87700bb38c.63@ | |
842 | In-Reply-To: <patchbomb.60@ |
|
842 | In-Reply-To: <patchbomb.60@ | |
843 | References: <patchbomb.60@ |
|
843 | References: <patchbomb.60@ | |
844 | User-Agent: Mercurial-patchbomb |
|
844 | User-Agent: Mercurial-patchbomb | |
845 |
Date: Thu, 01 Jan 1970 00:01:03 |
|
845 | Date: Thu, 01 Jan 1970 00:01:03 -0000 | |
846 | From: quux |
|
846 | From: quux | |
847 | To: foo |
|
847 | To: foo | |
848 | Cc: bar |
|
848 | Cc: bar | |
849 |
|
849 | |||
850 | --=== |
|
850 | --=== | |
851 | Content-Type: text/plain; charset="us-ascii" |
|
851 | Content-Type: text/plain; charset="us-ascii" | |
852 | MIME-Version: 1.0 |
|
852 | MIME-Version: 1.0 | |
853 | Content-Transfer-Encoding: 7bit |
|
853 | Content-Transfer-Encoding: 7bit | |
854 |
|
854 | |||
855 | Patch subject is complete summary. |
|
855 | Patch subject is complete summary. | |
856 |
|
856 | |||
857 |
|
857 | |||
858 |
|
858 | |||
859 | --=== |
|
859 | --=== | |
860 | Content-Type: text/x-patch; charset="us-ascii" |
|
860 | Content-Type: text/x-patch; charset="us-ascii" | |
861 | MIME-Version: 1.0 |
|
861 | MIME-Version: 1.0 | |
862 | Content-Transfer-Encoding: quoted-printable |
|
862 | Content-Transfer-Encoding: quoted-printable | |
863 | Content-Disposition: attachment; filename=t2-3.patch |
|
863 | Content-Disposition: attachment; filename=t2-3.patch | |
864 |
|
864 | |||
865 | # HG changeset patch |
|
865 | # HG changeset patch | |
866 | # User test |
|
866 | # User test | |
867 | # Date 4 0 |
|
867 | # Date 4 0 | |
868 | # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376 |
|
868 | # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376 | |
869 | # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a |
|
869 | # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a | |
870 | charset=3Dutf-8; content-transfer-encoding: quoted-printable |
|
870 | charset=3Dutf-8; content-transfer-encoding: quoted-printable | |
871 |
|
871 | |||
872 | diff -r c3c9e37db9f4 -r c655633f8c87 qp |
|
872 | diff -r c3c9e37db9f4 -r c655633f8c87 qp | |
873 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
873 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
874 | +++ b/qp Thu Jan 01 00:00:04 1970 +0000 |
|
874 | +++ b/qp Thu Jan 01 00:00:04 1970 +0000 | |
875 | @@ -0,0 +1,4 @@ |
|
875 | @@ -0,0 +1,4 @@ | |
876 | +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
876 | +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
877 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
877 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
878 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
878 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
879 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
879 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
880 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
880 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
881 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
881 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
882 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
882 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
883 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
883 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
884 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
884 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
885 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
885 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
886 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
886 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
887 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
887 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
888 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= |
|
888 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= | |
889 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
|
889 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | |
890 | +foo |
|
890 | +foo | |
891 | + |
|
891 | + | |
892 | +bar |
|
892 | +bar | |
893 |
|
893 | |||
894 | --=== |
|
894 | --=== | |
895 | % test intro for single patch |
|
895 | % test intro for single patch | |
896 | This patch series consists of 1 patches. |
|
896 | This patch series consists of 1 patches. | |
897 |
|
897 | |||
898 |
|
898 | |||
899 | Write the introductory message for the patch series. |
|
899 | Write the introductory message for the patch series. | |
900 |
|
900 | |||
901 |
|
901 | |||
902 | Displaying [PATCH 0 of 1] test ... |
|
902 | Displaying [PATCH 0 of 1] test ... | |
903 | Content-Type: text/plain; charset="us-ascii" |
|
903 | Content-Type: text/plain; charset="us-ascii" | |
904 | MIME-Version: 1.0 |
|
904 | MIME-Version: 1.0 | |
905 | Content-Transfer-Encoding: 7bit |
|
905 | Content-Transfer-Encoding: 7bit | |
906 | Subject: [PATCH 0 of 1] test |
|
906 | Subject: [PATCH 0 of 1] test | |
907 | Message-Id: <patchbomb.60@ |
|
907 | Message-Id: <patchbomb.60@ | |
908 | User-Agent: Mercurial-patchbomb |
|
908 | User-Agent: Mercurial-patchbomb | |
909 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
909 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
910 | From: quux |
|
910 | From: quux | |
911 | To: foo |
|
911 | To: foo | |
912 | Cc: bar |
|
912 | Cc: bar | |
913 |
|
913 | |||
914 |
|
914 | |||
915 | Displaying [PATCH 1 of 1] c ... |
|
915 | Displaying [PATCH 1 of 1] c ... | |
916 | Content-Type: text/plain; charset="us-ascii" |
|
916 | Content-Type: text/plain; charset="us-ascii" | |
917 | MIME-Version: 1.0 |
|
917 | MIME-Version: 1.0 | |
918 | Content-Transfer-Encoding: 7bit |
|
918 | Content-Transfer-Encoding: 7bit | |
919 | Subject: [PATCH 1 of 1] c |
|
919 | Subject: [PATCH 1 of 1] c | |
920 | X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f |
|
920 | X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f | |
921 | Message-Id: <ff2c9fa2018b15fa74b3.61@ |
|
921 | Message-Id: <ff2c9fa2018b15fa74b3.61@ | |
922 | In-Reply-To: <patchbomb.60@ |
|
922 | In-Reply-To: <patchbomb.60@ | |
923 | References: <patchbomb.60@ |
|
923 | References: <patchbomb.60@ | |
924 | User-Agent: Mercurial-patchbomb |
|
924 | User-Agent: Mercurial-patchbomb | |
925 |
Date: Thu, 01 Jan 1970 00:01:01 |
|
925 | Date: Thu, 01 Jan 1970 00:01:01 -0000 | |
926 | From: quux |
|
926 | From: quux | |
927 | To: foo |
|
927 | To: foo | |
928 | Cc: bar |
|
928 | Cc: bar | |
929 |
|
929 | |||
930 | # HG changeset patch |
|
930 | # HG changeset patch | |
931 | # User test |
|
931 | # User test | |
932 | # Date 3 0 |
|
932 | # Date 3 0 | |
933 | # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f |
|
933 | # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f | |
934 | # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
934 | # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
935 | c |
|
935 | c | |
936 |
|
936 | |||
937 | diff -r 97d72e5f12c7 -r ff2c9fa2018b c |
|
937 | diff -r 97d72e5f12c7 -r ff2c9fa2018b c | |
938 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
938 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
939 | +++ b/c Thu Jan 01 00:00:03 1970 +0000 |
|
939 | +++ b/c Thu Jan 01 00:00:03 1970 +0000 | |
940 | @@ -0,0 +1,1 @@ |
|
940 | @@ -0,0 +1,1 @@ | |
941 | +c |
|
941 | +c | |
942 |
|
942 | |||
943 | % test intro for multiple patches |
|
943 | % test intro for multiple patches | |
944 | This patch series consists of 2 patches. |
|
944 | This patch series consists of 2 patches. | |
945 |
|
945 | |||
946 |
|
946 | |||
947 | Write the introductory message for the patch series. |
|
947 | Write the introductory message for the patch series. | |
948 |
|
948 | |||
949 |
|
949 | |||
950 | Displaying [PATCH 0 of 2] test ... |
|
950 | Displaying [PATCH 0 of 2] test ... | |
951 | Content-Type: text/plain; charset="us-ascii" |
|
951 | Content-Type: text/plain; charset="us-ascii" | |
952 | MIME-Version: 1.0 |
|
952 | MIME-Version: 1.0 | |
953 | Content-Transfer-Encoding: 7bit |
|
953 | Content-Transfer-Encoding: 7bit | |
954 | Subject: [PATCH 0 of 2] test |
|
954 | Subject: [PATCH 0 of 2] test | |
955 | Message-Id: <patchbomb.60@ |
|
955 | Message-Id: <patchbomb.60@ | |
956 | User-Agent: Mercurial-patchbomb |
|
956 | User-Agent: Mercurial-patchbomb | |
957 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
957 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
958 | From: quux |
|
958 | From: quux | |
959 | To: foo |
|
959 | To: foo | |
960 | Cc: bar |
|
960 | Cc: bar | |
961 |
|
961 | |||
962 |
|
962 | |||
963 | Displaying [PATCH 1 of 2] a ... |
|
963 | Displaying [PATCH 1 of 2] a ... | |
964 | Content-Type: text/plain; charset="us-ascii" |
|
964 | Content-Type: text/plain; charset="us-ascii" | |
965 | MIME-Version: 1.0 |
|
965 | MIME-Version: 1.0 | |
966 | Content-Transfer-Encoding: 7bit |
|
966 | Content-Transfer-Encoding: 7bit | |
967 | Subject: [PATCH 1 of 2] a |
|
967 | Subject: [PATCH 1 of 2] a | |
968 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
968 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
969 | Message-Id: <8580ff50825a50c8f716.61@ |
|
969 | Message-Id: <8580ff50825a50c8f716.61@ | |
970 | In-Reply-To: <patchbomb.60@ |
|
970 | In-Reply-To: <patchbomb.60@ | |
971 | References: <patchbomb.60@ |
|
971 | References: <patchbomb.60@ | |
972 | User-Agent: Mercurial-patchbomb |
|
972 | User-Agent: Mercurial-patchbomb | |
973 |
Date: Thu, 01 Jan 1970 00:01:01 |
|
973 | Date: Thu, 01 Jan 1970 00:01:01 -0000 | |
974 | From: quux |
|
974 | From: quux | |
975 | To: foo |
|
975 | To: foo | |
976 | Cc: bar |
|
976 | Cc: bar | |
977 |
|
977 | |||
978 | # HG changeset patch |
|
978 | # HG changeset patch | |
979 | # User test |
|
979 | # User test | |
980 | # Date 1 0 |
|
980 | # Date 1 0 | |
981 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
981 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
982 | # Parent 0000000000000000000000000000000000000000 |
|
982 | # Parent 0000000000000000000000000000000000000000 | |
983 | a |
|
983 | a | |
984 |
|
984 | |||
985 | diff -r 000000000000 -r 8580ff50825a a |
|
985 | diff -r 000000000000 -r 8580ff50825a a | |
986 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
986 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
987 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 |
|
987 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
988 | @@ -0,0 +1,1 @@ |
|
988 | @@ -0,0 +1,1 @@ | |
989 | +a |
|
989 | +a | |
990 |
|
990 | |||
991 | Displaying [PATCH 2 of 2] b ... |
|
991 | Displaying [PATCH 2 of 2] b ... | |
992 | Content-Type: text/plain; charset="us-ascii" |
|
992 | Content-Type: text/plain; charset="us-ascii" | |
993 | MIME-Version: 1.0 |
|
993 | MIME-Version: 1.0 | |
994 | Content-Transfer-Encoding: 7bit |
|
994 | Content-Transfer-Encoding: 7bit | |
995 | Subject: [PATCH 2 of 2] b |
|
995 | Subject: [PATCH 2 of 2] b | |
996 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
996 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
997 | Message-Id: <97d72e5f12c7e84f8506.62@ |
|
997 | Message-Id: <97d72e5f12c7e84f8506.62@ | |
998 | In-Reply-To: <patchbomb.60@ |
|
998 | In-Reply-To: <patchbomb.60@ | |
999 | References: <patchbomb.60@ |
|
999 | References: <patchbomb.60@ | |
1000 | User-Agent: Mercurial-patchbomb |
|
1000 | User-Agent: Mercurial-patchbomb | |
1001 |
Date: Thu, 01 Jan 1970 00:01:02 |
|
1001 | Date: Thu, 01 Jan 1970 00:01:02 -0000 | |
1002 | From: quux |
|
1002 | From: quux | |
1003 | To: foo |
|
1003 | To: foo | |
1004 | Cc: bar |
|
1004 | Cc: bar | |
1005 |
|
1005 | |||
1006 | # HG changeset patch |
|
1006 | # HG changeset patch | |
1007 | # User test |
|
1007 | # User test | |
1008 | # Date 2 0 |
|
1008 | # Date 2 0 | |
1009 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
1009 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
1010 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
1010 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
1011 | b |
|
1011 | b | |
1012 |
|
1012 | |||
1013 | diff -r 8580ff50825a -r 97d72e5f12c7 b |
|
1013 | diff -r 8580ff50825a -r 97d72e5f12c7 b | |
1014 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
1014 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
1015 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 |
|
1015 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 | |
1016 | @@ -0,0 +1,1 @@ |
|
1016 | @@ -0,0 +1,1 @@ | |
1017 | +b |
|
1017 | +b | |
1018 |
|
1018 | |||
1019 | % tagging csets |
|
1019 | % tagging csets | |
1020 | % test inline for single named patch |
|
1020 | % test inline for single named patch | |
1021 | This patch series consists of 1 patches. |
|
1021 | This patch series consists of 1 patches. | |
1022 |
|
1022 | |||
1023 |
|
1023 | |||
1024 | Displaying [PATCH] test ... |
|
1024 | Displaying [PATCH] test ... | |
1025 | Content-Type: multipart/mixed; boundary="=== |
|
1025 | Content-Type: multipart/mixed; boundary="=== | |
1026 | MIME-Version: 1.0 |
|
1026 | MIME-Version: 1.0 | |
1027 | Subject: [PATCH] test |
|
1027 | Subject: [PATCH] test | |
1028 | X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f |
|
1028 | X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f | |
1029 | Message-Id: <ff2c9fa2018b15fa74b3.60@ |
|
1029 | Message-Id: <ff2c9fa2018b15fa74b3.60@ | |
1030 | User-Agent: Mercurial-patchbomb |
|
1030 | User-Agent: Mercurial-patchbomb | |
1031 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
1031 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
1032 | From: quux |
|
1032 | From: quux | |
1033 | To: foo |
|
1033 | To: foo | |
1034 | Cc: bar |
|
1034 | Cc: bar | |
1035 |
|
1035 | |||
1036 | --=== |
|
1036 | --=== | |
1037 | Content-Type: text/x-patch; charset="us-ascii" |
|
1037 | Content-Type: text/x-patch; charset="us-ascii" | |
1038 | MIME-Version: 1.0 |
|
1038 | MIME-Version: 1.0 | |
1039 | Content-Transfer-Encoding: 7bit |
|
1039 | Content-Transfer-Encoding: 7bit | |
1040 | Content-Disposition: inline; filename=two.diff |
|
1040 | Content-Disposition: inline; filename=two.diff | |
1041 |
|
1041 | |||
1042 | # HG changeset patch |
|
1042 | # HG changeset patch | |
1043 | # User test |
|
1043 | # User test | |
1044 | # Date 3 0 |
|
1044 | # Date 3 0 | |
1045 | # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f |
|
1045 | # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f | |
1046 | # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
1046 | # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
1047 | c |
|
1047 | c | |
1048 |
|
1048 | |||
1049 | diff -r 97d72e5f12c7 -r ff2c9fa2018b c |
|
1049 | diff -r 97d72e5f12c7 -r ff2c9fa2018b c | |
1050 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
1050 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
1051 | +++ b/c Thu Jan 01 00:00:03 1970 +0000 |
|
1051 | +++ b/c Thu Jan 01 00:00:03 1970 +0000 | |
1052 | @@ -0,0 +1,1 @@ |
|
1052 | @@ -0,0 +1,1 @@ | |
1053 | +c |
|
1053 | +c | |
1054 |
|
1054 | |||
1055 | --=== |
|
1055 | --=== | |
1056 | % test inline for multiple named/unnamed patches |
|
1056 | % test inline for multiple named/unnamed patches | |
1057 | This patch series consists of 2 patches. |
|
1057 | This patch series consists of 2 patches. | |
1058 |
|
1058 | |||
1059 |
|
1059 | |||
1060 | Write the introductory message for the patch series. |
|
1060 | Write the introductory message for the patch series. | |
1061 |
|
1061 | |||
1062 |
|
1062 | |||
1063 | Displaying [PATCH 0 of 2] test ... |
|
1063 | Displaying [PATCH 0 of 2] test ... | |
1064 | Content-Type: text/plain; charset="us-ascii" |
|
1064 | Content-Type: text/plain; charset="us-ascii" | |
1065 | MIME-Version: 1.0 |
|
1065 | MIME-Version: 1.0 | |
1066 | Content-Transfer-Encoding: 7bit |
|
1066 | Content-Transfer-Encoding: 7bit | |
1067 | Subject: [PATCH 0 of 2] test |
|
1067 | Subject: [PATCH 0 of 2] test | |
1068 | Message-Id: <patchbomb.60@ |
|
1068 | Message-Id: <patchbomb.60@ | |
1069 | User-Agent: Mercurial-patchbomb |
|
1069 | User-Agent: Mercurial-patchbomb | |
1070 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
1070 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
1071 | From: quux |
|
1071 | From: quux | |
1072 | To: foo |
|
1072 | To: foo | |
1073 | Cc: bar |
|
1073 | Cc: bar | |
1074 |
|
1074 | |||
1075 |
|
1075 | |||
1076 | Displaying [PATCH 1 of 2] a ... |
|
1076 | Displaying [PATCH 1 of 2] a ... | |
1077 | Content-Type: multipart/mixed; boundary="=== |
|
1077 | Content-Type: multipart/mixed; boundary="=== | |
1078 | MIME-Version: 1.0 |
|
1078 | MIME-Version: 1.0 | |
1079 | Subject: [PATCH 1 of 2] a |
|
1079 | Subject: [PATCH 1 of 2] a | |
1080 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
1080 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
1081 | Message-Id: <8580ff50825a50c8f716.61@ |
|
1081 | Message-Id: <8580ff50825a50c8f716.61@ | |
1082 | In-Reply-To: <patchbomb.60@ |
|
1082 | In-Reply-To: <patchbomb.60@ | |
1083 | References: <patchbomb.60@ |
|
1083 | References: <patchbomb.60@ | |
1084 | User-Agent: Mercurial-patchbomb |
|
1084 | User-Agent: Mercurial-patchbomb | |
1085 |
Date: Thu, 01 Jan 1970 00:01:01 |
|
1085 | Date: Thu, 01 Jan 1970 00:01:01 -0000 | |
1086 | From: quux |
|
1086 | From: quux | |
1087 | To: foo |
|
1087 | To: foo | |
1088 | Cc: bar |
|
1088 | Cc: bar | |
1089 |
|
1089 | |||
1090 | --=== |
|
1090 | --=== | |
1091 | Content-Type: text/x-patch; charset="us-ascii" |
|
1091 | Content-Type: text/x-patch; charset="us-ascii" | |
1092 | MIME-Version: 1.0 |
|
1092 | MIME-Version: 1.0 | |
1093 | Content-Transfer-Encoding: 7bit |
|
1093 | Content-Transfer-Encoding: 7bit | |
1094 | Content-Disposition: inline; filename=t2-1.patch |
|
1094 | Content-Disposition: inline; filename=t2-1.patch | |
1095 |
|
1095 | |||
1096 | # HG changeset patch |
|
1096 | # HG changeset patch | |
1097 | # User test |
|
1097 | # User test | |
1098 | # Date 1 0 |
|
1098 | # Date 1 0 | |
1099 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
1099 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
1100 | # Parent 0000000000000000000000000000000000000000 |
|
1100 | # Parent 0000000000000000000000000000000000000000 | |
1101 | a |
|
1101 | a | |
1102 |
|
1102 | |||
1103 | diff -r 000000000000 -r 8580ff50825a a |
|
1103 | diff -r 000000000000 -r 8580ff50825a a | |
1104 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
1104 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
1105 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 |
|
1105 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
1106 | @@ -0,0 +1,1 @@ |
|
1106 | @@ -0,0 +1,1 @@ | |
1107 | +a |
|
1107 | +a | |
1108 |
|
1108 | |||
1109 | --=== |
|
1109 | --=== | |
1110 | Displaying [PATCH 2 of 2] b ... |
|
1110 | Displaying [PATCH 2 of 2] b ... | |
1111 | Content-Type: multipart/mixed; boundary="=== |
|
1111 | Content-Type: multipart/mixed; boundary="=== | |
1112 | MIME-Version: 1.0 |
|
1112 | MIME-Version: 1.0 | |
1113 | Subject: [PATCH 2 of 2] b |
|
1113 | Subject: [PATCH 2 of 2] b | |
1114 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
1114 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
1115 | Message-Id: <97d72e5f12c7e84f8506.62@ |
|
1115 | Message-Id: <97d72e5f12c7e84f8506.62@ | |
1116 | In-Reply-To: <patchbomb.60@ |
|
1116 | In-Reply-To: <patchbomb.60@ | |
1117 | References: <patchbomb.60@ |
|
1117 | References: <patchbomb.60@ | |
1118 | User-Agent: Mercurial-patchbomb |
|
1118 | User-Agent: Mercurial-patchbomb | |
1119 |
Date: Thu, 01 Jan 1970 00:01:02 |
|
1119 | Date: Thu, 01 Jan 1970 00:01:02 -0000 | |
1120 | From: quux |
|
1120 | From: quux | |
1121 | To: foo |
|
1121 | To: foo | |
1122 | Cc: bar |
|
1122 | Cc: bar | |
1123 |
|
1123 | |||
1124 | --=== |
|
1124 | --=== | |
1125 | Content-Type: text/x-patch; charset="us-ascii" |
|
1125 | Content-Type: text/x-patch; charset="us-ascii" | |
1126 | MIME-Version: 1.0 |
|
1126 | MIME-Version: 1.0 | |
1127 | Content-Transfer-Encoding: 7bit |
|
1127 | Content-Transfer-Encoding: 7bit | |
1128 | Content-Disposition: inline; filename=one.patch |
|
1128 | Content-Disposition: inline; filename=one.patch | |
1129 |
|
1129 | |||
1130 | # HG changeset patch |
|
1130 | # HG changeset patch | |
1131 | # User test |
|
1131 | # User test | |
1132 | # Date 2 0 |
|
1132 | # Date 2 0 | |
1133 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
1133 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
1134 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
1134 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
1135 | b |
|
1135 | b | |
1136 |
|
1136 | |||
1137 | diff -r 8580ff50825a -r 97d72e5f12c7 b |
|
1137 | diff -r 8580ff50825a -r 97d72e5f12c7 b | |
1138 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
1138 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
1139 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 |
|
1139 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 | |
1140 | @@ -0,0 +1,1 @@ |
|
1140 | @@ -0,0 +1,1 @@ | |
1141 | +b |
|
1141 | +b | |
1142 |
|
1142 | |||
1143 | --=== |
|
1143 | --=== | |
1144 | % test inreplyto |
|
1144 | % test inreplyto | |
1145 | This patch series consists of 1 patches. |
|
1145 | This patch series consists of 1 patches. | |
1146 |
|
1146 | |||
1147 |
|
1147 | |||
1148 | Displaying [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b ... |
|
1148 | Displaying [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b ... | |
1149 | Content-Type: text/plain; charset="us-ascii" |
|
1149 | Content-Type: text/plain; charset="us-ascii" | |
1150 | MIME-Version: 1.0 |
|
1150 | MIME-Version: 1.0 | |
1151 | Content-Transfer-Encoding: 7bit |
|
1151 | Content-Transfer-Encoding: 7bit | |
1152 | Subject: [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b |
|
1152 | Subject: [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b | |
1153 | X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6 |
|
1153 | X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6 | |
1154 | Message-Id: <e317db6a6f288748d1f6.60@ |
|
1154 | Message-Id: <e317db6a6f288748d1f6.60@ | |
1155 | In-Reply-To: baz |
|
1155 | In-Reply-To: baz | |
1156 | References: baz |
|
1156 | References: baz | |
1157 | User-Agent: Mercurial-patchbomb |
|
1157 | User-Agent: Mercurial-patchbomb | |
1158 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
1158 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
1159 | From: quux |
|
1159 | From: quux | |
1160 | To: foo |
|
1160 | To: foo | |
1161 | Cc: bar |
|
1161 | Cc: bar | |
1162 |
|
1162 | |||
1163 | # HG changeset patch |
|
1163 | # HG changeset patch | |
1164 | # User test |
|
1164 | # User test | |
1165 | # Date 0 0 |
|
1165 | # Date 0 0 | |
1166 | # Node ID e317db6a6f288748d1f6cb064f3810fcba66b1b6 |
|
1166 | # Node ID e317db6a6f288748d1f6cb064f3810fcba66b1b6 | |
1167 | # Parent eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff |
|
1167 | # Parent eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff | |
1168 | Added tag two, two.diff for changeset ff2c9fa2018b |
|
1168 | Added tag two, two.diff for changeset ff2c9fa2018b | |
1169 |
|
1169 | |||
1170 | diff -r eae5fcf795ee -r e317db6a6f28 .hgtags |
|
1170 | diff -r eae5fcf795ee -r e317db6a6f28 .hgtags | |
1171 | --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000 |
|
1171 | --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000 | |
1172 | +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000 |
|
1172 | +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000 | |
1173 | @@ -2,3 +2,5 @@ |
|
1173 | @@ -2,3 +2,5 @@ | |
1174 | 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo |
|
1174 | 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo | |
1175 | 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one |
|
1175 | 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one | |
1176 | 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch |
|
1176 | 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch | |
1177 | +ff2c9fa2018b15fa74b33363bda9527323e2a99f two |
|
1177 | +ff2c9fa2018b15fa74b33363bda9527323e2a99f two | |
1178 | +ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff |
|
1178 | +ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff | |
1179 |
|
1179 | |||
1180 | This patch series consists of 2 patches. |
|
1180 | This patch series consists of 2 patches. | |
1181 |
|
1181 | |||
1182 |
|
1182 | |||
1183 | Write the introductory message for the patch series. |
|
1183 | Write the introductory message for the patch series. | |
1184 |
|
1184 | |||
1185 |
|
1185 | |||
1186 | Displaying [PATCH 0 of 2] None ... |
|
1186 | Displaying [PATCH 0 of 2] None ... | |
1187 | Content-Type: text/plain; charset="us-ascii" |
|
1187 | Content-Type: text/plain; charset="us-ascii" | |
1188 | MIME-Version: 1.0 |
|
1188 | MIME-Version: 1.0 | |
1189 | Content-Transfer-Encoding: 7bit |
|
1189 | Content-Transfer-Encoding: 7bit | |
1190 | Subject: [PATCH 0 of 2] None |
|
1190 | Subject: [PATCH 0 of 2] None | |
1191 | Message-Id: <patchbomb.60@ |
|
1191 | Message-Id: <patchbomb.60@ | |
1192 | In-Reply-To: baz |
|
1192 | In-Reply-To: baz | |
1193 | References: baz |
|
1193 | References: baz | |
1194 | User-Agent: Mercurial-patchbomb |
|
1194 | User-Agent: Mercurial-patchbomb | |
1195 |
Date: Thu, 01 Jan 1970 00:01:00 |
|
1195 | Date: Thu, 01 Jan 1970 00:01:00 -0000 | |
1196 | From: quux |
|
1196 | From: quux | |
1197 | To: foo |
|
1197 | To: foo | |
1198 | Cc: bar |
|
1198 | Cc: bar | |
1199 |
|
1199 | |||
1200 |
|
1200 | |||
1201 | Displaying [PATCH 1 of 2] a ... |
|
1201 | Displaying [PATCH 1 of 2] a ... | |
1202 | Content-Type: text/plain; charset="us-ascii" |
|
1202 | Content-Type: text/plain; charset="us-ascii" | |
1203 | MIME-Version: 1.0 |
|
1203 | MIME-Version: 1.0 | |
1204 | Content-Transfer-Encoding: 7bit |
|
1204 | Content-Transfer-Encoding: 7bit | |
1205 | Subject: [PATCH 1 of 2] a |
|
1205 | Subject: [PATCH 1 of 2] a | |
1206 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
1206 | X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
1207 | Message-Id: <8580ff50825a50c8f716.61@ |
|
1207 | Message-Id: <8580ff50825a50c8f716.61@ | |
1208 | In-Reply-To: <patchbomb.60@ |
|
1208 | In-Reply-To: <patchbomb.60@ | |
1209 | References: <patchbomb.60@ |
|
1209 | References: <patchbomb.60@ | |
1210 | User-Agent: Mercurial-patchbomb |
|
1210 | User-Agent: Mercurial-patchbomb | |
1211 |
Date: Thu, 01 Jan 1970 00:01:01 |
|
1211 | Date: Thu, 01 Jan 1970 00:01:01 -0000 | |
1212 | From: quux |
|
1212 | From: quux | |
1213 | To: foo |
|
1213 | To: foo | |
1214 | Cc: bar |
|
1214 | Cc: bar | |
1215 |
|
1215 | |||
1216 | # HG changeset patch |
|
1216 | # HG changeset patch | |
1217 | # User test |
|
1217 | # User test | |
1218 | # Date 1 0 |
|
1218 | # Date 1 0 | |
1219 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
1219 | # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
1220 | # Parent 0000000000000000000000000000000000000000 |
|
1220 | # Parent 0000000000000000000000000000000000000000 | |
1221 | a |
|
1221 | a | |
1222 |
|
1222 | |||
1223 | diff -r 000000000000 -r 8580ff50825a a |
|
1223 | diff -r 000000000000 -r 8580ff50825a a | |
1224 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
1224 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
1225 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 |
|
1225 | +++ b/a Thu Jan 01 00:00:01 1970 +0000 | |
1226 | @@ -0,0 +1,1 @@ |
|
1226 | @@ -0,0 +1,1 @@ | |
1227 | +a |
|
1227 | +a | |
1228 |
|
1228 | |||
1229 | Displaying [PATCH 2 of 2] b ... |
|
1229 | Displaying [PATCH 2 of 2] b ... | |
1230 | Content-Type: text/plain; charset="us-ascii" |
|
1230 | Content-Type: text/plain; charset="us-ascii" | |
1231 | MIME-Version: 1.0 |
|
1231 | MIME-Version: 1.0 | |
1232 | Content-Transfer-Encoding: 7bit |
|
1232 | Content-Transfer-Encoding: 7bit | |
1233 | Subject: [PATCH 2 of 2] b |
|
1233 | Subject: [PATCH 2 of 2] b | |
1234 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
1234 | X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
1235 | Message-Id: <97d72e5f12c7e84f8506.62@ |
|
1235 | Message-Id: <97d72e5f12c7e84f8506.62@ | |
1236 | In-Reply-To: <patchbomb.60@ |
|
1236 | In-Reply-To: <patchbomb.60@ | |
1237 | References: <patchbomb.60@ |
|
1237 | References: <patchbomb.60@ | |
1238 | User-Agent: Mercurial-patchbomb |
|
1238 | User-Agent: Mercurial-patchbomb | |
1239 |
Date: Thu, 01 Jan 1970 00:01:02 |
|
1239 | Date: Thu, 01 Jan 1970 00:01:02 -0000 | |
1240 | From: quux |
|
1240 | From: quux | |
1241 | To: foo |
|
1241 | To: foo | |
1242 | Cc: bar |
|
1242 | Cc: bar | |
1243 |
|
1243 | |||
1244 | # HG changeset patch |
|
1244 | # HG changeset patch | |
1245 | # User test |
|
1245 | # User test | |
1246 | # Date 2 0 |
|
1246 | # Date 2 0 | |
1247 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 |
|
1247 | # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9 | |
1248 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab |
|
1248 | # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab | |
1249 | b |
|
1249 | b | |
1250 |
|
1250 | |||
1251 | diff -r 8580ff50825a -r 97d72e5f12c7 b |
|
1251 | diff -r 8580ff50825a -r 97d72e5f12c7 b | |
1252 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
1252 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
1253 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 |
|
1253 | +++ b/b Thu Jan 01 00:00:02 1970 +0000 | |
1254 | @@ -0,0 +1,1 @@ |
|
1254 | @@ -0,0 +1,1 @@ | |
1255 | +b |
|
1255 | +b | |
1256 |
|
1256 |
General Comments 0
You need to be logged in to leave comments.
Login now