##// END OF EJS Templates
patchbomb: quoted-printable encode overly long lines...
Rocco Rutte -
r8332:3e544c07 default
parent child Browse files
Show More
@@ -1,170 +1,187 b''
1 # mail.py - mail sending bits for mercurial
1 # mail.py - mail sending bits for mercurial
2 #
2 #
3 # Copyright 2006 Matt Mackall <mpm@selenic.com>
3 # Copyright 2006 Matt Mackall <mpm@selenic.com>
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 from i18n import _
8 from i18n import _
9 import util, encoding
9 import util, encoding
10 import os, smtplib, socket
10 import os, smtplib, socket, quopri
11 import email.Header, email.MIMEText, email.Utils
11 import email.Header, email.MIMEText, email.Utils
12
12
13 def _smtp(ui):
13 def _smtp(ui):
14 '''build an smtp connection and return a function to send mail'''
14 '''build an smtp connection and return a function to send mail'''
15 local_hostname = ui.config('smtp', 'local_hostname')
15 local_hostname = ui.config('smtp', 'local_hostname')
16 s = smtplib.SMTP(local_hostname=local_hostname)
16 s = smtplib.SMTP(local_hostname=local_hostname)
17 mailhost = ui.config('smtp', 'host')
17 mailhost = ui.config('smtp', 'host')
18 if not mailhost:
18 if not mailhost:
19 raise util.Abort(_('no [smtp]host in hgrc - cannot send mail'))
19 raise util.Abort(_('no [smtp]host in hgrc - cannot send mail'))
20 mailport = int(ui.config('smtp', 'port', 25))
20 mailport = int(ui.config('smtp', 'port', 25))
21 ui.note(_('sending mail: smtp host %s, port %s\n') %
21 ui.note(_('sending mail: smtp host %s, port %s\n') %
22 (mailhost, mailport))
22 (mailhost, mailport))
23 s.connect(host=mailhost, port=mailport)
23 s.connect(host=mailhost, port=mailport)
24 if ui.configbool('smtp', 'tls'):
24 if ui.configbool('smtp', 'tls'):
25 if not hasattr(socket, 'ssl'):
25 if not hasattr(socket, 'ssl'):
26 raise util.Abort(_("can't use TLS: Python SSL support "
26 raise util.Abort(_("can't use TLS: Python SSL support "
27 "not installed"))
27 "not installed"))
28 ui.note(_('(using tls)\n'))
28 ui.note(_('(using tls)\n'))
29 s.ehlo()
29 s.ehlo()
30 s.starttls()
30 s.starttls()
31 s.ehlo()
31 s.ehlo()
32 username = ui.config('smtp', 'username')
32 username = ui.config('smtp', 'username')
33 password = ui.config('smtp', 'password')
33 password = ui.config('smtp', 'password')
34 if username and not password:
34 if username and not password:
35 password = ui.getpass()
35 password = ui.getpass()
36 if username and password:
36 if username and password:
37 ui.note(_('(authenticating to mail server as %s)\n') %
37 ui.note(_('(authenticating to mail server as %s)\n') %
38 (username))
38 (username))
39 s.login(username, password)
39 s.login(username, password)
40
40
41 def send(sender, recipients, msg):
41 def send(sender, recipients, msg):
42 try:
42 try:
43 return s.sendmail(sender, recipients, msg)
43 return s.sendmail(sender, recipients, msg)
44 except smtplib.SMTPRecipientsRefused, inst:
44 except smtplib.SMTPRecipientsRefused, inst:
45 recipients = [r[1] for r in inst.recipients.values()]
45 recipients = [r[1] for r in inst.recipients.values()]
46 raise util.Abort('\n' + '\n'.join(recipients))
46 raise util.Abort('\n' + '\n'.join(recipients))
47 except smtplib.SMTPException, inst:
47 except smtplib.SMTPException, inst:
48 raise util.Abort(inst)
48 raise util.Abort(inst)
49
49
50 return send
50 return send
51
51
52 def _sendmail(ui, sender, recipients, msg):
52 def _sendmail(ui, sender, recipients, msg):
53 '''send mail using sendmail.'''
53 '''send mail using sendmail.'''
54 program = ui.config('email', 'method')
54 program = ui.config('email', 'method')
55 cmdline = '%s -f %s %s' % (program, util.email(sender),
55 cmdline = '%s -f %s %s' % (program, util.email(sender),
56 ' '.join(map(util.email, recipients)))
56 ' '.join(map(util.email, recipients)))
57 ui.note(_('sending mail: %s\n') % cmdline)
57 ui.note(_('sending mail: %s\n') % cmdline)
58 fp = util.popen(cmdline, 'w')
58 fp = util.popen(cmdline, 'w')
59 fp.write(msg)
59 fp.write(msg)
60 ret = fp.close()
60 ret = fp.close()
61 if ret:
61 if ret:
62 raise util.Abort('%s %s' % (
62 raise util.Abort('%s %s' % (
63 os.path.basename(program.split(None, 1)[0]),
63 os.path.basename(program.split(None, 1)[0]),
64 util.explain_exit(ret)[0]))
64 util.explain_exit(ret)[0]))
65
65
66 def connect(ui):
66 def connect(ui):
67 '''make a mail connection. return a function to send mail.
67 '''make a mail connection. return a function to send mail.
68 call as sendmail(sender, list-of-recipients, msg).'''
68 call as sendmail(sender, list-of-recipients, msg).'''
69 if ui.config('email', 'method', 'smtp') == 'smtp':
69 if ui.config('email', 'method', 'smtp') == 'smtp':
70 return _smtp(ui)
70 return _smtp(ui)
71 return lambda s, r, m: _sendmail(ui, s, r, m)
71 return lambda s, r, m: _sendmail(ui, s, r, m)
72
72
73 def sendmail(ui, sender, recipients, msg):
73 def sendmail(ui, sender, recipients, msg):
74 send = connect(ui)
74 send = connect(ui)
75 return send(sender, recipients, msg)
75 return send(sender, recipients, msg)
76
76
77 def validateconfig(ui):
77 def validateconfig(ui):
78 '''determine if we have enough config data to try sending email.'''
78 '''determine if we have enough config data to try sending email.'''
79 method = ui.config('email', 'method', 'smtp')
79 method = ui.config('email', 'method', 'smtp')
80 if method == 'smtp':
80 if method == 'smtp':
81 if not ui.config('smtp', 'host'):
81 if not ui.config('smtp', 'host'):
82 raise util.Abort(_('smtp specified as email transport, '
82 raise util.Abort(_('smtp specified as email transport, '
83 'but no smtp host configured'))
83 'but no smtp host configured'))
84 else:
84 else:
85 if not util.find_exe(method):
85 if not util.find_exe(method):
86 raise util.Abort(_('%r specified as email transport, '
86 raise util.Abort(_('%r specified as email transport, '
87 'but not in PATH') % method)
87 'but not in PATH') % method)
88
88
89 def mimetextpatch(s, subtype='plain', display=False):
89 def mimetextpatch(s, subtype='plain', display=False):
90 '''If patch in utf-8 transfer-encode it.'''
90 '''If patch in utf-8 transfer-encode it.'''
91
92 enc = None
93 for line in s.splitlines():
94 if len(line) > 950:
95 s = quopri.encodestring(s)
96 enc = "quoted-printable"
97 break
98
99 cs = 'us-ascii'
91 if not display:
100 if not display:
92 for cs in ('us-ascii', 'utf-8'):
101 try:
102 s.decode('us-ascii')
103 except UnicodeDecodeError:
93 try:
104 try:
94 s.decode(cs)
105 s.decode('utf-8')
95 return email.MIMEText.MIMEText(s, subtype, cs)
106 cs = 'utf-8'
96 except UnicodeDecodeError:
107 except UnicodeDecodeError:
108 # We'll go with us-ascii as a fallback.
97 pass
109 pass
98 return email.MIMEText.MIMEText(s, subtype)
110
111 msg = email.MIMEText.MIMEText(s, subtype, cs)
112 if enc:
113 del msg['Content-Transfer-Encoding']
114 msg['Content-Transfer-Encoding'] = enc
115 return msg
99
116
100 def _charsets(ui):
117 def _charsets(ui):
101 '''Obtains charsets to send mail parts not containing patches.'''
118 '''Obtains charsets to send mail parts not containing patches.'''
102 charsets = [cs.lower() for cs in ui.configlist('email', 'charsets')]
119 charsets = [cs.lower() for cs in ui.configlist('email', 'charsets')]
103 fallbacks = [encoding.fallbackencoding.lower(),
120 fallbacks = [encoding.fallbackencoding.lower(),
104 encoding.encoding.lower(), 'utf-8']
121 encoding.encoding.lower(), 'utf-8']
105 for cs in fallbacks: # util.unique does not keep order
122 for cs in fallbacks: # util.unique does not keep order
106 if cs not in charsets:
123 if cs not in charsets:
107 charsets.append(cs)
124 charsets.append(cs)
108 return [cs for cs in charsets if not cs.endswith('ascii')]
125 return [cs for cs in charsets if not cs.endswith('ascii')]
109
126
110 def _encode(ui, s, charsets):
127 def _encode(ui, s, charsets):
111 '''Returns (converted) string, charset tuple.
128 '''Returns (converted) string, charset tuple.
112 Finds out best charset by cycling through sendcharsets in descending
129 Finds out best charset by cycling through sendcharsets in descending
113 order. Tries both encoding and fallbackencoding for input. Only as
130 order. Tries both encoding and fallbackencoding for input. Only as
114 last resort send as is in fake ascii.
131 last resort send as is in fake ascii.
115 Caveat: Do not use for mail parts containing patches!'''
132 Caveat: Do not use for mail parts containing patches!'''
116 try:
133 try:
117 s.decode('ascii')
134 s.decode('ascii')
118 except UnicodeDecodeError:
135 except UnicodeDecodeError:
119 sendcharsets = charsets or _charsets(ui)
136 sendcharsets = charsets or _charsets(ui)
120 for ics in (encoding.encoding, encoding.fallbackencoding):
137 for ics in (encoding.encoding, encoding.fallbackencoding):
121 try:
138 try:
122 u = s.decode(ics)
139 u = s.decode(ics)
123 except UnicodeDecodeError:
140 except UnicodeDecodeError:
124 continue
141 continue
125 for ocs in sendcharsets:
142 for ocs in sendcharsets:
126 try:
143 try:
127 return u.encode(ocs), ocs
144 return u.encode(ocs), ocs
128 except UnicodeEncodeError:
145 except UnicodeEncodeError:
129 pass
146 pass
130 except LookupError:
147 except LookupError:
131 ui.warn(_('ignoring invalid sendcharset: %s\n') % ocs)
148 ui.warn(_('ignoring invalid sendcharset: %s\n') % ocs)
132 # if ascii, or all conversion attempts fail, send (broken) ascii
149 # if ascii, or all conversion attempts fail, send (broken) ascii
133 return s, 'us-ascii'
150 return s, 'us-ascii'
134
151
135 def headencode(ui, s, charsets=None, display=False):
152 def headencode(ui, s, charsets=None, display=False):
136 '''Returns RFC-2047 compliant header from given string.'''
153 '''Returns RFC-2047 compliant header from given string.'''
137 if not display:
154 if not display:
138 # split into words?
155 # split into words?
139 s, cs = _encode(ui, s, charsets)
156 s, cs = _encode(ui, s, charsets)
140 return str(email.Header.Header(s, cs))
157 return str(email.Header.Header(s, cs))
141 return s
158 return s
142
159
143 def addressencode(ui, address, charsets=None, display=False):
160 def addressencode(ui, address, charsets=None, display=False):
144 '''Turns address into RFC-2047 compliant header.'''
161 '''Turns address into RFC-2047 compliant header.'''
145 if display or not address:
162 if display or not address:
146 return address or ''
163 return address or ''
147 name, addr = email.Utils.parseaddr(address)
164 name, addr = email.Utils.parseaddr(address)
148 name = headencode(ui, name, charsets)
165 name = headencode(ui, name, charsets)
149 try:
166 try:
150 acc, dom = addr.split('@')
167 acc, dom = addr.split('@')
151 acc = acc.encode('ascii')
168 acc = acc.encode('ascii')
152 dom = dom.encode('idna')
169 dom = dom.encode('idna')
153 addr = '%s@%s' % (acc, dom)
170 addr = '%s@%s' % (acc, dom)
154 except UnicodeDecodeError:
171 except UnicodeDecodeError:
155 raise util.Abort(_('invalid email address: %s') % addr)
172 raise util.Abort(_('invalid email address: %s') % addr)
156 except ValueError:
173 except ValueError:
157 try:
174 try:
158 # too strict?
175 # too strict?
159 addr = addr.encode('ascii')
176 addr = addr.encode('ascii')
160 except UnicodeDecodeError:
177 except UnicodeDecodeError:
161 raise util.Abort(_('invalid local address: %s') % addr)
178 raise util.Abort(_('invalid local address: %s') % addr)
162 return email.Utils.formataddr((name, addr))
179 return email.Utils.formataddr((name, addr))
163
180
164 def mimeencode(ui, s, charsets=None, display=False):
181 def mimeencode(ui, s, charsets=None, display=False):
165 '''creates mime text object, encodes it if needed, and sets
182 '''creates mime text object, encodes it if needed, and sets
166 charset and transfer-encoding accordingly.'''
183 charset and transfer-encoding accordingly.'''
167 cs = 'us-ascii'
184 cs = 'us-ascii'
168 if not display:
185 if not display:
169 s, cs = _encode(ui, s, charsets)
186 s, cs = _encode(ui, s, charsets)
170 return email.MIMEText.MIMEText(s, 'plain', cs)
187 return email.MIMEText.MIMEText(s, 'plain', cs)
@@ -1,123 +1,147 b''
1 #!/bin/sh
1 #!/bin/sh
2
2
3 fixheaders()
3 fixheaders()
4 {
4 {
5 sed -e 's/\(Message-Id:.*@\).*/\1/' \
5 sed -e 's/\(Message-Id:.*@\).*/\1/' \
6 -e 's/\(In-Reply-To:.*@\).*/\1/' \
6 -e 's/\(In-Reply-To:.*@\).*/\1/' \
7 -e 's/\(References:.*@\).*/\1/' \
7 -e 's/\(References:.*@\).*/\1/' \
8 -e 's/\(User-Agent:.*\)\/.*/\1/' \
8 -e 's/\(User-Agent:.*\)\/.*/\1/' \
9 -e 's/===.*/===/'
9 -e 's/===.*/===/'
10 }
10 }
11
11
12 echo "[extensions]" >> $HGRCPATH
12 echo "[extensions]" >> $HGRCPATH
13 echo "patchbomb=" >> $HGRCPATH
13 echo "patchbomb=" >> $HGRCPATH
14
14
15 COLUMNS=80; export COLUMNS
15 COLUMNS=80; export COLUMNS
16
16
17 hg init t
17 hg init t
18 cd t
18 cd t
19 echo a > a
19 echo a > a
20 hg commit -Ama -d '1 0'
20 hg commit -Ama -d '1 0'
21
21
22 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar tip | \
22 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar tip | \
23 fixheaders
23 fixheaders
24
24
25 echo b > b
25 echo b > b
26 hg commit -Amb -d '2 0'
26 hg commit -Amb -d '2 0'
27
27
28 hg email --date '1970-1-1 0:2' -n -f quux -t foo -c bar -s test 0:tip | \
28 hg email --date '1970-1-1 0:2' -n -f quux -t foo -c bar -s test 0:tip | \
29 fixheaders
29 fixheaders
30
30
31 hg email -m test.mbox -f quux -t foo -c bar -s test 0:tip
31 hg email -m test.mbox -f quux -t foo -c bar -s test 0:tip
32
32
33 cd ..
33 cd ..
34
34
35 hg clone -q t t2
35 hg clone -q t t2
36 cd t2
36 cd t2
37 echo c > c
37 echo c > c
38 hg commit -Amc -d '3 0'
38 hg commit -Amc -d '3 0'
39
39
40 cat > description <<EOF
40 cat > description <<EOF
41 a multiline
41 a multiline
42
42
43 description
43 description
44 EOF
44 EOF
45
45
46 echo "% test bundle and description"
46 echo "% test bundle and description"
47 hg email --date '1970-1-1 0:3' -n -f quux -t foo \
47 hg email --date '1970-1-1 0:3' -n -f quux -t foo \
48 -c bar -s test -r tip -b --desc description | \
48 -c bar -s test -r tip -b --desc description | \
49 fixheaders
49 fixheaders
50
50
51 echo "% utf-8 patch"
51 echo "% utf-8 patch"
52 python -c 'fp = open("utf", "wb"); fp.write("h\xC3\xB6mma!\n"); fp.close();'
52 python -c 'fp = open("utf", "wb"); fp.write("h\xC3\xB6mma!\n"); fp.close();'
53 hg commit -A -d '4 0' -m 'charset=utf-8; content-transfer-encoding: base64'
53 hg commit -A -d '4 0' -m 'charset=utf-8; content-transfer-encoding: base64'
54
54
55 echo "% no mime encoding for email --test"
55 echo "% no mime encoding for email --test"
56 hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n | fixheaders > mailtest
56 hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n | fixheaders > mailtest
57 echo "% md5sum of 8-bit output"
57 echo "% md5sum of 8-bit output"
58 $TESTDIR/md5sum.py mailtest
58 $TESTDIR/md5sum.py mailtest
59 rm mailtest
59 rm mailtest
60
60
61 echo "% mime encoded mbox"
61 echo "% mime encoded mbox (base64)"
62 hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -m mbox
63 cat mbox | fixheaders
64 rm mbox
65
66 echo "% mime encoded mbox (quoted-printable)"
67 python -c 'fp = open("qp", "wb"); fp.write("%s\nfoo\n\nbar\n" % \
68 ("x" * 1024)); fp.close();'
69 hg commit -A -d '4 0' -m 'charset=utf-8; content-transfer-encoding: quoted-printable'
70
71 echo "% no mime encoding for email --test"
72 hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n | fixheaders > mailtest
73 echo "% md5sum of qp output"
74 $TESTDIR/md5sum.py mailtest
75 rm mailtest
76
77 echo "% mime encoded mbox (quoted-printable)"
62 hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -m mbox
78 hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -m mbox
63 cat mbox | fixheaders
79 cat mbox | fixheaders
64 rm mbox
80 rm mbox
65
81
66 echo "% iso-8859-1 patch"
82 echo "% iso-8859-1 patch"
67 python -c 'fp = open("isolatin", "wb"); fp.write("h\xF6mma!\n"); fp.close();'
83 python -c 'fp = open("isolatin", "wb"); fp.write("h\xF6mma!\n"); fp.close();'
68 hg commit -A -d '5 0' -m 'charset=us-ascii; content-transfer-encoding: 8bit'
84 hg commit -A -d '5 0' -m 'charset=us-ascii; content-transfer-encoding: 8bit'
69
85
70 echo "% fake ascii mbox"
86 echo "% fake ascii mbox"
71 hg email --date '1970-1-1 0:5' -f quux -t foo -c bar -r tip -m mbox
87 hg email --date '1970-1-1 0:5' -f quux -t foo -c bar -r tip -m mbox
72 fixheaders < mbox > mboxfix
88 fixheaders < mbox > mboxfix
73 echo "% md5sum of 8-bit output"
89 echo "% md5sum of 8-bit output"
74 $TESTDIR/md5sum.py mboxfix
90 $TESTDIR/md5sum.py mboxfix
75
91
76 echo "% test diffstat for single patch"
92 echo "% test diffstat for single patch"
77 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y 2 | \
93 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y 2 | \
78 fixheaders
94 fixheaders
79
95
80 echo "% test diffstat for multiple patches"
96 echo "% test diffstat for multiple patches"
81 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y 0:1 | \
97 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y 0:1 | \
82 fixheaders
98 fixheaders
83
99
84 echo "% test inline for single patch"
100 echo "% test inline for single patch"
85 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 2 | \
101 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 2 | \
86 fixheaders
102 fixheaders
87
103
104 echo "% test inline for single patch (quoted-printable)"
105 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 4 | \
106 fixheaders
107
88 echo "% test inline for multiple patches"
108 echo "% test inline for multiple patches"
89 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 0:1 | \
109 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i \
90 fixheaders
110 -r 0:1 -r 4 | fixheaders
91
111
92 echo "% test attach for single patch"
112 echo "% test attach for single patch"
93 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a 2 | \
113 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a 2 | \
94 fixheaders
114 fixheaders
95
115
116 echo "% test attach for single patch (quoted-printable)"
117 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a 4 | \
118 fixheaders
119
96 echo "% test attach for multiple patches"
120 echo "% test attach for multiple patches"
97 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a 0:1 | \
121 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a \
98 fixheaders
122 -r 0:1 -r 4 | fixheaders
99
123
100 echo "% test intro for single patch"
124 echo "% test intro for single patch"
101 hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test 2 | \
125 hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test 2 | \
102 fixheaders
126 fixheaders
103
127
104 echo "% test intro for multiple patches"
128 echo "% test intro for multiple patches"
105 hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test 0:1 | \
129 hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test 0:1 | \
106 fixheaders
130 fixheaders
107
131
108 echo "% tagging csets"
132 echo "% tagging csets"
109 hg tag -r0 zero zero.foo
133 hg tag -r0 zero zero.foo
110 hg tag -r1 one one.patch
134 hg tag -r1 one one.patch
111 hg tag -r2 two two.diff
135 hg tag -r2 two two.diff
112
136
113 echo "% test inline for single named patch"
137 echo "% test inline for single named patch"
114 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 2 | \
138 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 2 | \
115 fixheaders
139 fixheaders
116
140
117 echo "% test inline for multiple named/unnamed patches"
141 echo "% test inline for multiple named/unnamed patches"
118 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 0:1 | \
142 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 0:1 | \
119 fixheaders
143 fixheaders
120
144
121 echo "% test inreplyto"
145 echo "% test inreplyto"
122 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz tip | \
146 hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar --in-reply-to baz tip | \
123 fixheaders
147 fixheaders
@@ -1,902 +1,1179 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 +0000
13 Date: Thu, 01 Jan 1970 00:01:00 +0000
14 From: quux
14 From: quux
15 To: foo
15 To: foo
16 Cc: bar
16 Cc: bar
17
17
18 # HG changeset patch
18 # HG changeset patch
19 # User test
19 # User test
20 # Date 1 0
20 # Date 1 0
21 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
21 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
22 # Parent 0000000000000000000000000000000000000000
22 # Parent 0000000000000000000000000000000000000000
23 a
23 a
24
24
25 diff -r 000000000000 -r 8580ff50825a a
25 diff -r 000000000000 -r 8580ff50825a a
26 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
26 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
27 +++ b/a Thu Jan 01 00:00:01 1970 +0000
27 +++ b/a Thu Jan 01 00:00:01 1970 +0000
28 @@ -0,0 +1,1 @@
28 @@ -0,0 +1,1 @@
29 +a
29 +a
30
30
31 adding b
31 adding b
32 This patch series consists of 2 patches.
32 This patch series consists of 2 patches.
33
33
34
34
35 Write the introductory message for the patch series.
35 Write the introductory message for the patch series.
36
36
37
37
38 Displaying [PATCH 0 of 2] test ...
38 Displaying [PATCH 0 of 2] test ...
39 Content-Type: text/plain; charset="us-ascii"
39 Content-Type: text/plain; charset="us-ascii"
40 MIME-Version: 1.0
40 MIME-Version: 1.0
41 Content-Transfer-Encoding: 7bit
41 Content-Transfer-Encoding: 7bit
42 Subject: [PATCH 0 of 2] test
42 Subject: [PATCH 0 of 2] test
43 Message-Id: <patchbomb.120@
43 Message-Id: <patchbomb.120@
44 User-Agent: Mercurial-patchbomb
44 User-Agent: Mercurial-patchbomb
45 Date: Thu, 01 Jan 1970 00:02:00 +0000
45 Date: Thu, 01 Jan 1970 00:02:00 +0000
46 From: quux
46 From: quux
47 To: foo
47 To: foo
48 Cc: bar
48 Cc: bar
49
49
50
50
51 Displaying [PATCH 1 of 2] a ...
51 Displaying [PATCH 1 of 2] a ...
52 Content-Type: text/plain; charset="us-ascii"
52 Content-Type: text/plain; charset="us-ascii"
53 MIME-Version: 1.0
53 MIME-Version: 1.0
54 Content-Transfer-Encoding: 7bit
54 Content-Transfer-Encoding: 7bit
55 Subject: [PATCH 1 of 2] a
55 Subject: [PATCH 1 of 2] a
56 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
56 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
57 Message-Id: <8580ff50825a50c8f716.121@
57 Message-Id: <8580ff50825a50c8f716.121@
58 In-Reply-To: <patchbomb.120@
58 In-Reply-To: <patchbomb.120@
59 References: <patchbomb.120@
59 References: <patchbomb.120@
60 User-Agent: Mercurial-patchbomb
60 User-Agent: Mercurial-patchbomb
61 Date: Thu, 01 Jan 1970 00:02:01 +0000
61 Date: Thu, 01 Jan 1970 00:02:01 +0000
62 From: quux
62 From: quux
63 To: foo
63 To: foo
64 Cc: bar
64 Cc: bar
65
65
66 # HG changeset patch
66 # HG changeset patch
67 # User test
67 # User test
68 # Date 1 0
68 # Date 1 0
69 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
69 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
70 # Parent 0000000000000000000000000000000000000000
70 # Parent 0000000000000000000000000000000000000000
71 a
71 a
72
72
73 diff -r 000000000000 -r 8580ff50825a a
73 diff -r 000000000000 -r 8580ff50825a a
74 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
74 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
75 +++ b/a Thu Jan 01 00:00:01 1970 +0000
75 +++ b/a Thu Jan 01 00:00:01 1970 +0000
76 @@ -0,0 +1,1 @@
76 @@ -0,0 +1,1 @@
77 +a
77 +a
78
78
79 Displaying [PATCH 2 of 2] b ...
79 Displaying [PATCH 2 of 2] b ...
80 Content-Type: text/plain; charset="us-ascii"
80 Content-Type: text/plain; charset="us-ascii"
81 MIME-Version: 1.0
81 MIME-Version: 1.0
82 Content-Transfer-Encoding: 7bit
82 Content-Transfer-Encoding: 7bit
83 Subject: [PATCH 2 of 2] b
83 Subject: [PATCH 2 of 2] b
84 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
84 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
85 Message-Id: <97d72e5f12c7e84f8506.122@
85 Message-Id: <97d72e5f12c7e84f8506.122@
86 In-Reply-To: <patchbomb.120@
86 In-Reply-To: <patchbomb.120@
87 References: <patchbomb.120@
87 References: <patchbomb.120@
88 User-Agent: Mercurial-patchbomb
88 User-Agent: Mercurial-patchbomb
89 Date: Thu, 01 Jan 1970 00:02:02 +0000
89 Date: Thu, 01 Jan 1970 00:02:02 +0000
90 From: quux
90 From: quux
91 To: foo
91 To: foo
92 Cc: bar
92 Cc: bar
93
93
94 # HG changeset patch
94 # HG changeset patch
95 # User test
95 # User test
96 # Date 2 0
96 # Date 2 0
97 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
97 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
98 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
98 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
99 b
99 b
100
100
101 diff -r 8580ff50825a -r 97d72e5f12c7 b
101 diff -r 8580ff50825a -r 97d72e5f12c7 b
102 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
102 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
103 +++ b/b Thu Jan 01 00:00:02 1970 +0000
103 +++ b/b Thu Jan 01 00:00:02 1970 +0000
104 @@ -0,0 +1,1 @@
104 @@ -0,0 +1,1 @@
105 +b
105 +b
106
106
107 This patch series consists of 2 patches.
107 This patch series consists of 2 patches.
108
108
109
109
110 Write the introductory message for the patch series.
110 Write the introductory message for the patch series.
111
111
112
112
113 Writing [PATCH 0 of 2] test ...
113 Writing [PATCH 0 of 2] test ...
114 Writing [PATCH 1 of 2] a ...
114 Writing [PATCH 1 of 2] a ...
115 Writing [PATCH 2 of 2] b ...
115 Writing [PATCH 2 of 2] b ...
116 adding c
116 adding c
117 % test bundle and description
117 % test bundle and description
118 searching for changes
118 searching for changes
119 1 changesets found
119 1 changesets found
120
120
121 Displaying test ...
121 Displaying test ...
122 Content-Type: multipart/mixed; boundary="===
122 Content-Type: multipart/mixed; boundary="===
123 MIME-Version: 1.0
123 MIME-Version: 1.0
124 Subject: test
124 Subject: test
125 Message-Id: <patchbomb.180@
125 Message-Id: <patchbomb.180@
126 User-Agent: Mercurial-patchbomb
126 User-Agent: Mercurial-patchbomb
127 Date: Thu, 01 Jan 1970 00:03:00 +0000
127 Date: Thu, 01 Jan 1970 00:03:00 +0000
128 From: quux
128 From: quux
129 To: foo
129 To: foo
130 Cc: bar
130 Cc: bar
131
131
132 --===
132 --===
133 Content-Type: text/plain; charset="us-ascii"
133 Content-Type: text/plain; charset="us-ascii"
134 MIME-Version: 1.0
134 MIME-Version: 1.0
135 Content-Transfer-Encoding: 7bit
135 Content-Transfer-Encoding: 7bit
136
136
137 a multiline
137 a multiline
138
138
139 description
139 description
140
140
141 --===
141 --===
142 Content-Type: application/x-mercurial-bundle
142 Content-Type: application/x-mercurial-bundle
143 MIME-Version: 1.0
143 MIME-Version: 1.0
144 Content-Disposition: attachment; filename="bundle.hg"
144 Content-Disposition: attachment; filename="bundle.hg"
145 Content-Transfer-Encoding: base64
145 Content-Transfer-Encoding: base64
146
146
147 SEcxMEJaaDkxQVkmU1nvR7I3AAAN////lFYQWj1/4HwRkdC/AywIAk0E4pfoSIIIgQCgGEQOcLAA
147 SEcxMEJaaDkxQVkmU1nvR7I3AAAN////lFYQWj1/4HwRkdC/AywIAk0E4pfoSIIIgQCgGEQOcLAA
148 2tA1VPyp4mkeoG0EaaPU0GTT1GjRiNPIg9CZGBqZ6UbU9J+KFU09DNUaGgAAAAAANAGgAAAAA1U8
148 2tA1VPyp4mkeoG0EaaPU0GTT1GjRiNPIg9CZGBqZ6UbU9J+KFU09DNUaGgAAAAAANAGgAAAAA1U8
149 oGgAADQGgAANNANAAAAAAZipFLz3XoakCEQB3PVPyHJVi1iYkAAKQAZQGpQGZESInRnCFMqLDla2
149 oGgAADQGgAANNANAAAAAAZipFLz3XoakCEQB3PVPyHJVi1iYkAAKQAZQGpQGZESInRnCFMqLDla2
150 Bx3qfRQeA2N4lnzKkAmP8kR2asievLLXXebVU8Vg4iEBqcJNJAxIapSU6SM4888ZAciRG6MYAIEE
150 Bx3qfRQeA2N4lnzKkAmP8kR2asievLLXXebVU8Vg4iEBqcJNJAxIapSU6SM4888ZAciRG6MYAIEE
151 SlIBpFisgGkyRjX//TMtfcUAEsGu56+YnE1OlTZmzKm8BSu2rvo4rHAYYaadIFFuTy0LYgIkgLVD
151 SlIBpFisgGkyRjX//TMtfcUAEsGu56+YnE1OlTZmzKm8BSu2rvo4rHAYYaadIFFuTy0LYgIkgLVD
152 sgVa2F19D1tx9+hgbAygLgQwaIqcDdgA4BjQgIiz/AEP72++llgDKhKducqodGE4B0ETqF3JFOFC
152 sgVa2F19D1tx9+hgbAygLgQwaIqcDdgA4BjQgIiz/AEP72++llgDKhKducqodGE4B0ETqF3JFOFC
153 Q70eyNw=
153 Q70eyNw=
154 --===
154 --===
155 % utf-8 patch
155 % utf-8 patch
156 adding description
156 adding description
157 adding utf
157 adding utf
158 % no mime encoding for email --test
158 % no mime encoding for email --test
159 % md5sum of 8-bit output
159 % md5sum of 8-bit output
160 e726c29b3008e77994c7572563e57c34 mailtest
160 e726c29b3008e77994c7572563e57c34 mailtest
161 % mime encoded mbox
161 % mime encoded mbox (base64)
162 This patch series consists of 1 patches.
162 This patch series consists of 1 patches.
163
163
164
164
165 Writing [PATCH] charset=utf-8; content-transfer-encoding: base64 ...
165 Writing [PATCH] charset=utf-8; content-transfer-encoding: base64 ...
166 From quux Thu Jan 01 00:04:01 1970
166 From quux Thu Jan 01 00:04:01 1970
167 Content-Type: text/plain; charset="utf-8"
167 Content-Type: text/plain; charset="utf-8"
168 MIME-Version: 1.0
168 MIME-Version: 1.0
169 Content-Transfer-Encoding: base64
169 Content-Transfer-Encoding: base64
170 Subject: [PATCH] charset=utf-8; content-transfer-encoding: base64
170 Subject: [PATCH] charset=utf-8; content-transfer-encoding: base64
171 X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
171 X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
172 Message-Id: <c3c9e37db9f4fe4882cd.240@
172 Message-Id: <c3c9e37db9f4fe4882cd.240@
173 User-Agent: Mercurial-patchbomb
173 User-Agent: Mercurial-patchbomb
174 Date: Thu, 01 Jan 1970 00:04:00 +0000
174 Date: Thu, 01 Jan 1970 00:04:00 +0000
175 From: quux
175 From: quux
176 To: foo
176 To: foo
177 Cc: bar
177 Cc: bar
178
178
179 IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIHRlc3QKIyBEYXRlIDQgMAojIE5vZGUgSUQgYzNj
179 IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIHRlc3QKIyBEYXRlIDQgMAojIE5vZGUgSUQgYzNj
180 OWUzN2RiOWY0ZmU0ODgyY2RhMzliYWY0MmZlZDZiYWQ4YjE1YQojIFBhcmVudCAgZmYyYzlmYTIw
180 OWUzN2RiOWY0ZmU0ODgyY2RhMzliYWY0MmZlZDZiYWQ4YjE1YQojIFBhcmVudCAgZmYyYzlmYTIw
181 MThiMTVmYTc0YjMzMzYzYmRhOTUyNzMyM2UyYTk5ZgpjaGFyc2V0PXV0Zi04OyBjb250ZW50LXRy
181 MThiMTVmYTc0YjMzMzYzYmRhOTUyNzMyM2UyYTk5ZgpjaGFyc2V0PXV0Zi04OyBjb250ZW50LXRy
182 YW5zZmVyLWVuY29kaW5nOiBiYXNlNjQKCmRpZmYgLXIgZmYyYzlmYTIwMThiIC1yIGMzYzllMzdk
182 YW5zZmVyLWVuY29kaW5nOiBiYXNlNjQKCmRpZmYgLXIgZmYyYzlmYTIwMThiIC1yIGMzYzllMzdk
183 YjlmNCBkZXNjcmlwdGlvbgotLS0gL2Rldi9udWxsCVRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCAr
183 YjlmNCBkZXNjcmlwdGlvbgotLS0gL2Rldi9udWxsCVRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCAr
184 MDAwMAorKysgYi9kZXNjcmlwdGlvbglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg
184 MDAwMAorKysgYi9kZXNjcmlwdGlvbglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg
185 LTAsMCArMSwzIEBACithIG11bHRpbGluZQorCitkZXNjcmlwdGlvbgpkaWZmIC1yIGZmMmM5ZmEy
185 LTAsMCArMSwzIEBACithIG11bHRpbGluZQorCitkZXNjcmlwdGlvbgpkaWZmIC1yIGZmMmM5ZmEy
186 MDE4YiAtciBjM2M5ZTM3ZGI5ZjQgdXRmCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDow
186 MDE4YiAtciBjM2M5ZTM3ZGI5ZjQgdXRmCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDow
187 MCAxOTcwICswMDAwCisrKyBiL3V0ZglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg
187 MCAxOTcwICswMDAwCisrKyBiL3V0ZglUaHUgSmFuIDAxIDAwOjAwOjA0IDE5NzAgKzAwMDAKQEAg
188 LTAsMCArMSwxIEBACitow7ZtbWEhCg==
188 LTAsMCArMSwxIEBACitow7ZtbWEhCg==
189
189
190
190
191 % mime encoded mbox (quoted-printable)
192 adding qp
193 % no mime encoding for email --test
194 % md5sum of qp output
195 0402c7d033e04044e423bb04816f9dae mailtest
196 % mime encoded mbox (quoted-printable)
197 This patch series consists of 1 patches.
198
199
200 Writing [PATCH] charset=utf-8; content-transfer-encoding: quoted-printable ...
201 From quux Thu Jan 01 00:04:01 1970
202 Content-Type: text/plain; charset="us-ascii"
203 MIME-Version: 1.0
204 Content-Transfer-Encoding: quoted-printable
205 Subject: [PATCH] charset=utf-8; content-transfer-encoding: quoted-printable
206 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
207 Message-Id: <c655633f8c87700bb38c.240@
208 User-Agent: Mercurial-patchbomb
209 Date: Thu, 01 Jan 1970 00:04:00 +0000
210 From: quux
211 To: foo
212 Cc: bar
213
214 # HG changeset patch
215 # User test
216 # Date 4 0
217 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
218 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
219 charset=3Dutf-8; content-transfer-encoding: quoted-printable
220
221 diff -r c3c9e37db9f4 -r c655633f8c87 qp
222 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
223 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
224 @@ -0,0 +1,4 @@
225 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
226 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
227 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
228 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
229 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
230 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
231 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
232 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
233 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
234 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
235 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
236 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
237 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
238 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
239 +foo
240 +
241 +bar
242
243
191 % iso-8859-1 patch
244 % iso-8859-1 patch
192 adding isolatin
245 adding isolatin
193 % fake ascii mbox
246 % fake ascii mbox
194 This patch series consists of 1 patches.
247 This patch series consists of 1 patches.
195
248
196
249
197 Writing [PATCH] charset=us-ascii; content-transfer-encoding: 8bit ...
250 Writing [PATCH] charset=us-ascii; content-transfer-encoding: 8bit ...
198 % md5sum of 8-bit output
251 % md5sum of 8-bit output
199 40190791e367a851e42f0887b2d9439e mboxfix
252 9ea043d8fc43a71045114508baed144b mboxfix
200 % test diffstat for single patch
253 % test diffstat for single patch
201 This patch series consists of 1 patches.
254 This patch series consists of 1 patches.
202
255
203 c
256 c
204
257
205 c | 1 +
258 c | 1 +
206 1 files changed, 1 insertions(+), 0 deletions(-)
259 1 files changed, 1 insertions(+), 0 deletions(-)
207
260
208
261
209 Displaying [PATCH] test ...
262 Displaying [PATCH] test ...
210 Content-Type: text/plain; charset="us-ascii"
263 Content-Type: text/plain; charset="us-ascii"
211 MIME-Version: 1.0
264 MIME-Version: 1.0
212 Content-Transfer-Encoding: 7bit
265 Content-Transfer-Encoding: 7bit
213 Subject: [PATCH] test
266 Subject: [PATCH] test
214 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
267 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
215 Message-Id: <ff2c9fa2018b15fa74b3.60@
268 Message-Id: <ff2c9fa2018b15fa74b3.60@
216 User-Agent: Mercurial-patchbomb
269 User-Agent: Mercurial-patchbomb
217 Date: Thu, 01 Jan 1970 00:01:00 +0000
270 Date: Thu, 01 Jan 1970 00:01:00 +0000
218 From: quux
271 From: quux
219 To: foo
272 To: foo
220 Cc: bar
273 Cc: bar
221
274
222 c | 1 +
275 c | 1 +
223 1 files changed, 1 insertions(+), 0 deletions(-)
276 1 files changed, 1 insertions(+), 0 deletions(-)
224
277
225
278
226 # HG changeset patch
279 # HG changeset patch
227 # User test
280 # User test
228 # Date 3 0
281 # Date 3 0
229 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
282 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
230 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
283 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
231 c
284 c
232
285
233 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
286 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
234 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
287 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
235 +++ b/c Thu Jan 01 00:00:03 1970 +0000
288 +++ b/c Thu Jan 01 00:00:03 1970 +0000
236 @@ -0,0 +1,1 @@
289 @@ -0,0 +1,1 @@
237 +c
290 +c
238
291
239 % test diffstat for multiple patches
292 % test diffstat for multiple patches
240 This patch series consists of 2 patches.
293 This patch series consists of 2 patches.
241
294
242 a
295 a
243
296
244 a | 1 +
297 a | 1 +
245 1 files changed, 1 insertions(+), 0 deletions(-)
298 1 files changed, 1 insertions(+), 0 deletions(-)
246
299
247 b
300 b
248
301
249 b | 1 +
302 b | 1 +
250 1 files changed, 1 insertions(+), 0 deletions(-)
303 1 files changed, 1 insertions(+), 0 deletions(-)
251
304
252 Final summary:
305 Final summary:
253
306
254 a | 1 +
307 a | 1 +
255 b | 1 +
308 b | 1 +
256 2 files changed, 2 insertions(+), 0 deletions(-)
309 2 files changed, 2 insertions(+), 0 deletions(-)
257
310
258
311
259 Write the introductory message for the patch series.
312 Write the introductory message for the patch series.
260
313
261
314
262 Displaying [PATCH 0 of 2] test ...
315 Displaying [PATCH 0 of 2] test ...
263 Content-Type: text/plain; charset="us-ascii"
316 Content-Type: text/plain; charset="us-ascii"
264 MIME-Version: 1.0
317 MIME-Version: 1.0
265 Content-Transfer-Encoding: 7bit
318 Content-Transfer-Encoding: 7bit
266 Subject: [PATCH 0 of 2] test
319 Subject: [PATCH 0 of 2] test
267 Message-Id: <patchbomb.60@
320 Message-Id: <patchbomb.60@
268 User-Agent: Mercurial-patchbomb
321 User-Agent: Mercurial-patchbomb
269 Date: Thu, 01 Jan 1970 00:01:00 +0000
322 Date: Thu, 01 Jan 1970 00:01:00 +0000
270 From: quux
323 From: quux
271 To: foo
324 To: foo
272 Cc: bar
325 Cc: bar
273
326
274
327
275 a | 1 +
328 a | 1 +
276 b | 1 +
329 b | 1 +
277 2 files changed, 2 insertions(+), 0 deletions(-)
330 2 files changed, 2 insertions(+), 0 deletions(-)
278
331
279 Displaying [PATCH 1 of 2] a ...
332 Displaying [PATCH 1 of 2] a ...
280 Content-Type: text/plain; charset="us-ascii"
333 Content-Type: text/plain; charset="us-ascii"
281 MIME-Version: 1.0
334 MIME-Version: 1.0
282 Content-Transfer-Encoding: 7bit
335 Content-Transfer-Encoding: 7bit
283 Subject: [PATCH 1 of 2] a
336 Subject: [PATCH 1 of 2] a
284 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
337 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
285 Message-Id: <8580ff50825a50c8f716.61@
338 Message-Id: <8580ff50825a50c8f716.61@
286 In-Reply-To: <patchbomb.60@
339 In-Reply-To: <patchbomb.60@
287 References: <patchbomb.60@
340 References: <patchbomb.60@
288 User-Agent: Mercurial-patchbomb
341 User-Agent: Mercurial-patchbomb
289 Date: Thu, 01 Jan 1970 00:01:01 +0000
342 Date: Thu, 01 Jan 1970 00:01:01 +0000
290 From: quux
343 From: quux
291 To: foo
344 To: foo
292 Cc: bar
345 Cc: bar
293
346
294 a | 1 +
347 a | 1 +
295 1 files changed, 1 insertions(+), 0 deletions(-)
348 1 files changed, 1 insertions(+), 0 deletions(-)
296
349
297
350
298 # HG changeset patch
351 # HG changeset patch
299 # User test
352 # User test
300 # Date 1 0
353 # Date 1 0
301 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
354 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
302 # Parent 0000000000000000000000000000000000000000
355 # Parent 0000000000000000000000000000000000000000
303 a
356 a
304
357
305 diff -r 000000000000 -r 8580ff50825a a
358 diff -r 000000000000 -r 8580ff50825a a
306 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
359 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
307 +++ b/a Thu Jan 01 00:00:01 1970 +0000
360 +++ b/a Thu Jan 01 00:00:01 1970 +0000
308 @@ -0,0 +1,1 @@
361 @@ -0,0 +1,1 @@
309 +a
362 +a
310
363
311 Displaying [PATCH 2 of 2] b ...
364 Displaying [PATCH 2 of 2] b ...
312 Content-Type: text/plain; charset="us-ascii"
365 Content-Type: text/plain; charset="us-ascii"
313 MIME-Version: 1.0
366 MIME-Version: 1.0
314 Content-Transfer-Encoding: 7bit
367 Content-Transfer-Encoding: 7bit
315 Subject: [PATCH 2 of 2] b
368 Subject: [PATCH 2 of 2] b
316 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
369 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
317 Message-Id: <97d72e5f12c7e84f8506.62@
370 Message-Id: <97d72e5f12c7e84f8506.62@
318 In-Reply-To: <patchbomb.60@
371 In-Reply-To: <patchbomb.60@
319 References: <patchbomb.60@
372 References: <patchbomb.60@
320 User-Agent: Mercurial-patchbomb
373 User-Agent: Mercurial-patchbomb
321 Date: Thu, 01 Jan 1970 00:01:02 +0000
374 Date: Thu, 01 Jan 1970 00:01:02 +0000
322 From: quux
375 From: quux
323 To: foo
376 To: foo
324 Cc: bar
377 Cc: bar
325
378
326 b | 1 +
379 b | 1 +
327 1 files changed, 1 insertions(+), 0 deletions(-)
380 1 files changed, 1 insertions(+), 0 deletions(-)
328
381
329
382
330 # HG changeset patch
383 # HG changeset patch
331 # User test
384 # User test
332 # Date 2 0
385 # Date 2 0
333 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
386 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
334 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
387 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
335 b
388 b
336
389
337 diff -r 8580ff50825a -r 97d72e5f12c7 b
390 diff -r 8580ff50825a -r 97d72e5f12c7 b
338 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
391 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
339 +++ b/b Thu Jan 01 00:00:02 1970 +0000
392 +++ b/b Thu Jan 01 00:00:02 1970 +0000
340 @@ -0,0 +1,1 @@
393 @@ -0,0 +1,1 @@
341 +b
394 +b
342
395
343 % test inline for single patch
396 % test inline for single patch
344 This patch series consists of 1 patches.
397 This patch series consists of 1 patches.
345
398
346
399
347 Displaying [PATCH] test ...
400 Displaying [PATCH] test ...
348 Content-Type: multipart/mixed; boundary="===
401 Content-Type: multipart/mixed; boundary="===
349 MIME-Version: 1.0
402 MIME-Version: 1.0
350 Subject: [PATCH] test
403 Subject: [PATCH] test
351 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
404 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
352 Message-Id: <ff2c9fa2018b15fa74b3.60@
405 Message-Id: <ff2c9fa2018b15fa74b3.60@
353 User-Agent: Mercurial-patchbomb
406 User-Agent: Mercurial-patchbomb
354 Date: Thu, 01 Jan 1970 00:01:00 +0000
407 Date: Thu, 01 Jan 1970 00:01:00 +0000
355 From: quux
408 From: quux
356 To: foo
409 To: foo
357 Cc: bar
410 Cc: bar
358
411
359 --===
412 --===
360 Content-Type: text/x-patch; charset="us-ascii"
413 Content-Type: text/x-patch; charset="us-ascii"
361 MIME-Version: 1.0
414 MIME-Version: 1.0
362 Content-Transfer-Encoding: 7bit
415 Content-Transfer-Encoding: 7bit
363 Content-Disposition: inline; filename=t2.patch
416 Content-Disposition: inline; filename=t2.patch
364
417
365 # HG changeset patch
418 # HG changeset patch
366 # User test
419 # User test
367 # Date 3 0
420 # Date 3 0
368 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
421 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
369 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
422 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
370 c
423 c
371
424
372 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
425 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
373 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
426 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
374 +++ b/c Thu Jan 01 00:00:03 1970 +0000
427 +++ b/c Thu Jan 01 00:00:03 1970 +0000
375 @@ -0,0 +1,1 @@
428 @@ -0,0 +1,1 @@
376 +c
429 +c
377
430
378 --===
431 --===
432 % test inline for single patch (quoted-printable)
433 This patch series consists of 1 patches.
434
435
436 Displaying [PATCH] test ...
437 Content-Type: multipart/mixed; boundary="===
438 MIME-Version: 1.0
439 Subject: [PATCH] test
440 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
441 Message-Id: <c655633f8c87700bb38c.60@
442 User-Agent: Mercurial-patchbomb
443 Date: Thu, 01 Jan 1970 00:01:00 +0000
444 From: quux
445 To: foo
446 Cc: bar
447
448 --===
449 Content-Type: text/x-patch; charset="us-ascii"
450 MIME-Version: 1.0
451 Content-Transfer-Encoding: quoted-printable
452 Content-Disposition: inline; filename=t2.patch
453
454 # HG changeset patch
455 # User test
456 # Date 4 0
457 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
458 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
459 charset=3Dutf-8; content-transfer-encoding: quoted-printable
460
461 diff -r c3c9e37db9f4 -r c655633f8c87 qp
462 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
463 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
464 @@ -0,0 +1,4 @@
465 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
466 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
467 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
468 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
469 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
470 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
471 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
472 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
473 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
474 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
475 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
476 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
477 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
478 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
479 +foo
480 +
481 +bar
482
483 --===
379 % test inline for multiple patches
484 % test inline for multiple patches
380 This patch series consists of 2 patches.
485 This patch series consists of 3 patches.
381
486
382
487
383 Write the introductory message for the patch series.
488 Write the introductory message for the patch series.
384
489
385
490
386 Displaying [PATCH 0 of 2] test ...
491 Displaying [PATCH 0 of 3] test ...
387 Content-Type: text/plain; charset="us-ascii"
492 Content-Type: text/plain; charset="us-ascii"
388 MIME-Version: 1.0
493 MIME-Version: 1.0
389 Content-Transfer-Encoding: 7bit
494 Content-Transfer-Encoding: 7bit
390 Subject: [PATCH 0 of 2] test
495 Subject: [PATCH 0 of 3] test
391 Message-Id: <patchbomb.60@
496 Message-Id: <patchbomb.60@
392 User-Agent: Mercurial-patchbomb
497 User-Agent: Mercurial-patchbomb
393 Date: Thu, 01 Jan 1970 00:01:00 +0000
498 Date: Thu, 01 Jan 1970 00:01:00 +0000
394 From: quux
499 From: quux
395 To: foo
500 To: foo
396 Cc: bar
501 Cc: bar
397
502
398
503
399 Displaying [PATCH 1 of 2] a ...
504 Displaying [PATCH 1 of 3] a ...
400 Content-Type: multipart/mixed; boundary="===
505 Content-Type: multipart/mixed; boundary="===
401 MIME-Version: 1.0
506 MIME-Version: 1.0
402 Subject: [PATCH 1 of 2] a
507 Subject: [PATCH 1 of 3] a
403 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
508 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
404 Message-Id: <8580ff50825a50c8f716.61@
509 Message-Id: <8580ff50825a50c8f716.61@
405 In-Reply-To: <patchbomb.60@
510 In-Reply-To: <patchbomb.60@
406 References: <patchbomb.60@
511 References: <patchbomb.60@
407 User-Agent: Mercurial-patchbomb
512 User-Agent: Mercurial-patchbomb
408 Date: Thu, 01 Jan 1970 00:01:01 +0000
513 Date: Thu, 01 Jan 1970 00:01:01 +0000
409 From: quux
514 From: quux
410 To: foo
515 To: foo
411 Cc: bar
516 Cc: bar
412
517
413 --===
518 --===
414 Content-Type: text/x-patch; charset="us-ascii"
519 Content-Type: text/x-patch; charset="us-ascii"
415 MIME-Version: 1.0
520 MIME-Version: 1.0
416 Content-Transfer-Encoding: 7bit
521 Content-Transfer-Encoding: 7bit
417 Content-Disposition: inline; filename=t2-1.patch
522 Content-Disposition: inline; filename=t2-1.patch
418
523
419 # HG changeset patch
524 # HG changeset patch
420 # User test
525 # User test
421 # Date 1 0
526 # Date 1 0
422 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
527 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
423 # Parent 0000000000000000000000000000000000000000
528 # Parent 0000000000000000000000000000000000000000
424 a
529 a
425
530
426 diff -r 000000000000 -r 8580ff50825a a
531 diff -r 000000000000 -r 8580ff50825a a
427 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
532 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
428 +++ b/a Thu Jan 01 00:00:01 1970 +0000
533 +++ b/a Thu Jan 01 00:00:01 1970 +0000
429 @@ -0,0 +1,1 @@
534 @@ -0,0 +1,1 @@
430 +a
535 +a
431
536
432 --===
537 --===
433 Displaying [PATCH 2 of 2] b ...
538 Displaying [PATCH 2 of 3] b ...
434 Content-Type: multipart/mixed; boundary="===
539 Content-Type: multipart/mixed; boundary="===
435 MIME-Version: 1.0
540 MIME-Version: 1.0
436 Subject: [PATCH 2 of 2] b
541 Subject: [PATCH 2 of 3] b
437 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
542 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
438 Message-Id: <97d72e5f12c7e84f8506.62@
543 Message-Id: <97d72e5f12c7e84f8506.62@
439 In-Reply-To: <patchbomb.60@
544 In-Reply-To: <patchbomb.60@
440 References: <patchbomb.60@
545 References: <patchbomb.60@
441 User-Agent: Mercurial-patchbomb
546 User-Agent: Mercurial-patchbomb
442 Date: Thu, 01 Jan 1970 00:01:02 +0000
547 Date: Thu, 01 Jan 1970 00:01:02 +0000
443 From: quux
548 From: quux
444 To: foo
549 To: foo
445 Cc: bar
550 Cc: bar
446
551
447 --===
552 --===
448 Content-Type: text/x-patch; charset="us-ascii"
553 Content-Type: text/x-patch; charset="us-ascii"
449 MIME-Version: 1.0
554 MIME-Version: 1.0
450 Content-Transfer-Encoding: 7bit
555 Content-Transfer-Encoding: 7bit
451 Content-Disposition: inline; filename=t2-2.patch
556 Content-Disposition: inline; filename=t2-2.patch
452
557
453 # HG changeset patch
558 # HG changeset patch
454 # User test
559 # User test
455 # Date 2 0
560 # Date 2 0
456 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
561 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
457 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
562 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
458 b
563 b
459
564
460 diff -r 8580ff50825a -r 97d72e5f12c7 b
565 diff -r 8580ff50825a -r 97d72e5f12c7 b
461 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
566 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
462 +++ b/b Thu Jan 01 00:00:02 1970 +0000
567 +++ b/b Thu Jan 01 00:00:02 1970 +0000
463 @@ -0,0 +1,1 @@
568 @@ -0,0 +1,1 @@
464 +b
569 +b
465
570
466 --===
571 --===
572 Displaying [PATCH 3 of 3] charset=utf-8; content-transfer-encoding: quoted-printable ...
573 Content-Type: multipart/mixed; boundary="===
574 MIME-Version: 1.0
575 Subject: [PATCH 3 of 3] charset=utf-8;
576 content-transfer-encoding: quoted-printable
577 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
578 Message-Id: <c655633f8c87700bb38c.63@
579 In-Reply-To: <patchbomb.60@
580 References: <patchbomb.60@
581 User-Agent: Mercurial-patchbomb
582 Date: Thu, 01 Jan 1970 00:01:03 +0000
583 From: quux
584 To: foo
585 Cc: bar
586
587 --===
588 Content-Type: text/x-patch; charset="us-ascii"
589 MIME-Version: 1.0
590 Content-Transfer-Encoding: quoted-printable
591 Content-Disposition: inline; filename=t2-3.patch
592
593 # HG changeset patch
594 # User test
595 # Date 4 0
596 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
597 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
598 charset=3Dutf-8; content-transfer-encoding: quoted-printable
599
600 diff -r c3c9e37db9f4 -r c655633f8c87 qp
601 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
602 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
603 @@ -0,0 +1,4 @@
604 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
605 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
606 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
607 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
608 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
609 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
610 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
611 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
612 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
613 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
614 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
615 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
616 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
617 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
618 +foo
619 +
620 +bar
621
622 --===
467 % test attach for single patch
623 % test attach for single patch
468 This patch series consists of 1 patches.
624 This patch series consists of 1 patches.
469
625
470
626
471 Displaying [PATCH] test ...
627 Displaying [PATCH] test ...
472 Content-Type: multipart/mixed; boundary="===
628 Content-Type: multipart/mixed; boundary="===
473 MIME-Version: 1.0
629 MIME-Version: 1.0
474 Subject: [PATCH] test
630 Subject: [PATCH] test
475 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
631 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
476 Message-Id: <ff2c9fa2018b15fa74b3.60@
632 Message-Id: <ff2c9fa2018b15fa74b3.60@
477 User-Agent: Mercurial-patchbomb
633 User-Agent: Mercurial-patchbomb
478 Date: Thu, 01 Jan 1970 00:01:00 +0000
634 Date: Thu, 01 Jan 1970 00:01:00 +0000
479 From: quux
635 From: quux
480 To: foo
636 To: foo
481 Cc: bar
637 Cc: bar
482
638
483 --===
639 --===
484 Content-Type: text/plain; charset="us-ascii"
640 Content-Type: text/plain; charset="us-ascii"
485 MIME-Version: 1.0
641 MIME-Version: 1.0
486 Content-Transfer-Encoding: 7bit
642 Content-Transfer-Encoding: 7bit
487
643
488 Patch subject is complete summary.
644 Patch subject is complete summary.
489
645
490
646
491
647
492 --===
648 --===
493 Content-Type: text/x-patch; charset="us-ascii"
649 Content-Type: text/x-patch; charset="us-ascii"
494 MIME-Version: 1.0
650 MIME-Version: 1.0
495 Content-Transfer-Encoding: 7bit
651 Content-Transfer-Encoding: 7bit
496 Content-Disposition: attachment; filename=t2.patch
652 Content-Disposition: attachment; filename=t2.patch
497
653
498 # HG changeset patch
654 # HG changeset patch
499 # User test
655 # User test
500 # Date 3 0
656 # Date 3 0
501 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
657 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
502 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
658 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
503 c
659 c
504
660
505 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
661 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
506 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
662 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
507 +++ b/c Thu Jan 01 00:00:03 1970 +0000
663 +++ b/c Thu Jan 01 00:00:03 1970 +0000
508 @@ -0,0 +1,1 @@
664 @@ -0,0 +1,1 @@
509 +c
665 +c
510
666
511 --===
667 --===
668 % test attach for single patch (quoted-printable)
669 This patch series consists of 1 patches.
670
671
672 Displaying [PATCH] test ...
673 Content-Type: multipart/mixed; boundary="===
674 MIME-Version: 1.0
675 Subject: [PATCH] test
676 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
677 Message-Id: <c655633f8c87700bb38c.60@
678 User-Agent: Mercurial-patchbomb
679 Date: Thu, 01 Jan 1970 00:01:00 +0000
680 From: quux
681 To: foo
682 Cc: bar
683
684 --===
685 Content-Type: text/plain; charset="us-ascii"
686 MIME-Version: 1.0
687 Content-Transfer-Encoding: 7bit
688
689 Patch subject is complete summary.
690
691
692
693 --===
694 Content-Type: text/x-patch; charset="us-ascii"
695 MIME-Version: 1.0
696 Content-Transfer-Encoding: quoted-printable
697 Content-Disposition: attachment; filename=t2.patch
698
699 # HG changeset patch
700 # User test
701 # Date 4 0
702 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
703 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
704 charset=3Dutf-8; content-transfer-encoding: quoted-printable
705
706 diff -r c3c9e37db9f4 -r c655633f8c87 qp
707 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
708 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
709 @@ -0,0 +1,4 @@
710 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
711 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
712 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
713 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
714 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
715 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
716 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
717 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
718 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
719 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
720 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
721 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
722 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
723 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
724 +foo
725 +
726 +bar
727
728 --===
512 % test attach for multiple patches
729 % test attach for multiple patches
513 This patch series consists of 2 patches.
730 This patch series consists of 3 patches.
514
731
515
732
516 Write the introductory message for the patch series.
733 Write the introductory message for the patch series.
517
734
518
735
519 Displaying [PATCH 0 of 2] test ...
736 Displaying [PATCH 0 of 3] test ...
520 Content-Type: text/plain; charset="us-ascii"
737 Content-Type: text/plain; charset="us-ascii"
521 MIME-Version: 1.0
738 MIME-Version: 1.0
522 Content-Transfer-Encoding: 7bit
739 Content-Transfer-Encoding: 7bit
523 Subject: [PATCH 0 of 2] test
740 Subject: [PATCH 0 of 3] test
524 Message-Id: <patchbomb.60@
741 Message-Id: <patchbomb.60@
525 User-Agent: Mercurial-patchbomb
742 User-Agent: Mercurial-patchbomb
526 Date: Thu, 01 Jan 1970 00:01:00 +0000
743 Date: Thu, 01 Jan 1970 00:01:00 +0000
527 From: quux
744 From: quux
528 To: foo
745 To: foo
529 Cc: bar
746 Cc: bar
530
747
531
748
532 Displaying [PATCH 1 of 2] a ...
749 Displaying [PATCH 1 of 3] a ...
533 Content-Type: multipart/mixed; boundary="===
750 Content-Type: multipart/mixed; boundary="===
534 MIME-Version: 1.0
751 MIME-Version: 1.0
535 Subject: [PATCH 1 of 2] a
752 Subject: [PATCH 1 of 3] a
536 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
753 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
537 Message-Id: <8580ff50825a50c8f716.61@
754 Message-Id: <8580ff50825a50c8f716.61@
538 In-Reply-To: <patchbomb.60@
755 In-Reply-To: <patchbomb.60@
539 References: <patchbomb.60@
756 References: <patchbomb.60@
540 User-Agent: Mercurial-patchbomb
757 User-Agent: Mercurial-patchbomb
541 Date: Thu, 01 Jan 1970 00:01:01 +0000
758 Date: Thu, 01 Jan 1970 00:01:01 +0000
542 From: quux
759 From: quux
543 To: foo
760 To: foo
544 Cc: bar
761 Cc: bar
545
762
546 --===
763 --===
547 Content-Type: text/plain; charset="us-ascii"
764 Content-Type: text/plain; charset="us-ascii"
548 MIME-Version: 1.0
765 MIME-Version: 1.0
549 Content-Transfer-Encoding: 7bit
766 Content-Transfer-Encoding: 7bit
550
767
551 Patch subject is complete summary.
768 Patch subject is complete summary.
552
769
553
770
554
771
555 --===
772 --===
556 Content-Type: text/x-patch; charset="us-ascii"
773 Content-Type: text/x-patch; charset="us-ascii"
557 MIME-Version: 1.0
774 MIME-Version: 1.0
558 Content-Transfer-Encoding: 7bit
775 Content-Transfer-Encoding: 7bit
559 Content-Disposition: attachment; filename=t2-1.patch
776 Content-Disposition: attachment; filename=t2-1.patch
560
777
561 # HG changeset patch
778 # HG changeset patch
562 # User test
779 # User test
563 # Date 1 0
780 # Date 1 0
564 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
781 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
565 # Parent 0000000000000000000000000000000000000000
782 # Parent 0000000000000000000000000000000000000000
566 a
783 a
567
784
568 diff -r 000000000000 -r 8580ff50825a a
785 diff -r 000000000000 -r 8580ff50825a a
569 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
786 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
570 +++ b/a Thu Jan 01 00:00:01 1970 +0000
787 +++ b/a Thu Jan 01 00:00:01 1970 +0000
571 @@ -0,0 +1,1 @@
788 @@ -0,0 +1,1 @@
572 +a
789 +a
573
790
574 --===
791 --===
575 Displaying [PATCH 2 of 2] b ...
792 Displaying [PATCH 2 of 3] b ...
576 Content-Type: multipart/mixed; boundary="===
793 Content-Type: multipart/mixed; boundary="===
577 MIME-Version: 1.0
794 MIME-Version: 1.0
578 Subject: [PATCH 2 of 2] b
795 Subject: [PATCH 2 of 3] b
579 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
796 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
580 Message-Id: <97d72e5f12c7e84f8506.62@
797 Message-Id: <97d72e5f12c7e84f8506.62@
581 In-Reply-To: <patchbomb.60@
798 In-Reply-To: <patchbomb.60@
582 References: <patchbomb.60@
799 References: <patchbomb.60@
583 User-Agent: Mercurial-patchbomb
800 User-Agent: Mercurial-patchbomb
584 Date: Thu, 01 Jan 1970 00:01:02 +0000
801 Date: Thu, 01 Jan 1970 00:01:02 +0000
585 From: quux
802 From: quux
586 To: foo
803 To: foo
587 Cc: bar
804 Cc: bar
588
805
589 --===
806 --===
590 Content-Type: text/plain; charset="us-ascii"
807 Content-Type: text/plain; charset="us-ascii"
591 MIME-Version: 1.0
808 MIME-Version: 1.0
592 Content-Transfer-Encoding: 7bit
809 Content-Transfer-Encoding: 7bit
593
810
594 Patch subject is complete summary.
811 Patch subject is complete summary.
595
812
596
813
597
814
598 --===
815 --===
599 Content-Type: text/x-patch; charset="us-ascii"
816 Content-Type: text/x-patch; charset="us-ascii"
600 MIME-Version: 1.0
817 MIME-Version: 1.0
601 Content-Transfer-Encoding: 7bit
818 Content-Transfer-Encoding: 7bit
602 Content-Disposition: attachment; filename=t2-2.patch
819 Content-Disposition: attachment; filename=t2-2.patch
603
820
604 # HG changeset patch
821 # HG changeset patch
605 # User test
822 # User test
606 # Date 2 0
823 # Date 2 0
607 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
824 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
608 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
825 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
609 b
826 b
610
827
611 diff -r 8580ff50825a -r 97d72e5f12c7 b
828 diff -r 8580ff50825a -r 97d72e5f12c7 b
612 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
829 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
613 +++ b/b Thu Jan 01 00:00:02 1970 +0000
830 +++ b/b Thu Jan 01 00:00:02 1970 +0000
614 @@ -0,0 +1,1 @@
831 @@ -0,0 +1,1 @@
615 +b
832 +b
616
833
617 --===
834 --===
835 Displaying [PATCH 3 of 3] charset=utf-8; content-transfer-encoding: quoted-printable ...
836 Content-Type: multipart/mixed; boundary="===
837 MIME-Version: 1.0
838 Subject: [PATCH 3 of 3] charset=utf-8;
839 content-transfer-encoding: quoted-printable
840 X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
841 Message-Id: <c655633f8c87700bb38c.63@
842 In-Reply-To: <patchbomb.60@
843 References: <patchbomb.60@
844 User-Agent: Mercurial-patchbomb
845 Date: Thu, 01 Jan 1970 00:01:03 +0000
846 From: quux
847 To: foo
848 Cc: bar
849
850 --===
851 Content-Type: text/plain; charset="us-ascii"
852 MIME-Version: 1.0
853 Content-Transfer-Encoding: 7bit
854
855 Patch subject is complete summary.
856
857
858
859 --===
860 Content-Type: text/x-patch; charset="us-ascii"
861 MIME-Version: 1.0
862 Content-Transfer-Encoding: quoted-printable
863 Content-Disposition: attachment; filename=t2-3.patch
864
865 # HG changeset patch
866 # User test
867 # Date 4 0
868 # Node ID c655633f8c87700bb38cc6a59a2753bdc5a6c376
869 # Parent c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
870 charset=3Dutf-8; content-transfer-encoding: quoted-printable
871
872 diff -r c3c9e37db9f4 -r c655633f8c87 qp
873 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
874 +++ b/qp Thu Jan 01 00:00:04 1970 +0000
875 @@ -0,0 +1,4 @@
876 +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
877 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
878 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
879 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
880 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
881 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
882 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
883 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
884 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
885 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
886 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
887 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
888 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
889 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
890 +foo
891 +
892 +bar
893
894 --===
618 % test intro for single patch
895 % test intro for single patch
619 This patch series consists of 1 patches.
896 This patch series consists of 1 patches.
620
897
621
898
622 Write the introductory message for the patch series.
899 Write the introductory message for the patch series.
623
900
624
901
625 Displaying [PATCH 0 of 1] test ...
902 Displaying [PATCH 0 of 1] test ...
626 Content-Type: text/plain; charset="us-ascii"
903 Content-Type: text/plain; charset="us-ascii"
627 MIME-Version: 1.0
904 MIME-Version: 1.0
628 Content-Transfer-Encoding: 7bit
905 Content-Transfer-Encoding: 7bit
629 Subject: [PATCH 0 of 1] test
906 Subject: [PATCH 0 of 1] test
630 Message-Id: <patchbomb.60@
907 Message-Id: <patchbomb.60@
631 User-Agent: Mercurial-patchbomb
908 User-Agent: Mercurial-patchbomb
632 Date: Thu, 01 Jan 1970 00:01:00 +0000
909 Date: Thu, 01 Jan 1970 00:01:00 +0000
633 From: quux
910 From: quux
634 To: foo
911 To: foo
635 Cc: bar
912 Cc: bar
636
913
637
914
638 Displaying [PATCH 1 of 1] c ...
915 Displaying [PATCH 1 of 1] c ...
639 Content-Type: text/plain; charset="us-ascii"
916 Content-Type: text/plain; charset="us-ascii"
640 MIME-Version: 1.0
917 MIME-Version: 1.0
641 Content-Transfer-Encoding: 7bit
918 Content-Transfer-Encoding: 7bit
642 Subject: [PATCH 1 of 1] c
919 Subject: [PATCH 1 of 1] c
643 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
920 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
644 Message-Id: <ff2c9fa2018b15fa74b3.61@
921 Message-Id: <ff2c9fa2018b15fa74b3.61@
645 In-Reply-To: <patchbomb.60@
922 In-Reply-To: <patchbomb.60@
646 References: <patchbomb.60@
923 References: <patchbomb.60@
647 User-Agent: Mercurial-patchbomb
924 User-Agent: Mercurial-patchbomb
648 Date: Thu, 01 Jan 1970 00:01:01 +0000
925 Date: Thu, 01 Jan 1970 00:01:01 +0000
649 From: quux
926 From: quux
650 To: foo
927 To: foo
651 Cc: bar
928 Cc: bar
652
929
653 # HG changeset patch
930 # HG changeset patch
654 # User test
931 # User test
655 # Date 3 0
932 # Date 3 0
656 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
933 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
657 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
934 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
658 c
935 c
659
936
660 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
937 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
661 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
938 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
662 +++ b/c Thu Jan 01 00:00:03 1970 +0000
939 +++ b/c Thu Jan 01 00:00:03 1970 +0000
663 @@ -0,0 +1,1 @@
940 @@ -0,0 +1,1 @@
664 +c
941 +c
665
942
666 % test intro for multiple patches
943 % test intro for multiple patches
667 This patch series consists of 2 patches.
944 This patch series consists of 2 patches.
668
945
669
946
670 Write the introductory message for the patch series.
947 Write the introductory message for the patch series.
671
948
672
949
673 Displaying [PATCH 0 of 2] test ...
950 Displaying [PATCH 0 of 2] test ...
674 Content-Type: text/plain; charset="us-ascii"
951 Content-Type: text/plain; charset="us-ascii"
675 MIME-Version: 1.0
952 MIME-Version: 1.0
676 Content-Transfer-Encoding: 7bit
953 Content-Transfer-Encoding: 7bit
677 Subject: [PATCH 0 of 2] test
954 Subject: [PATCH 0 of 2] test
678 Message-Id: <patchbomb.60@
955 Message-Id: <patchbomb.60@
679 User-Agent: Mercurial-patchbomb
956 User-Agent: Mercurial-patchbomb
680 Date: Thu, 01 Jan 1970 00:01:00 +0000
957 Date: Thu, 01 Jan 1970 00:01:00 +0000
681 From: quux
958 From: quux
682 To: foo
959 To: foo
683 Cc: bar
960 Cc: bar
684
961
685
962
686 Displaying [PATCH 1 of 2] a ...
963 Displaying [PATCH 1 of 2] a ...
687 Content-Type: text/plain; charset="us-ascii"
964 Content-Type: text/plain; charset="us-ascii"
688 MIME-Version: 1.0
965 MIME-Version: 1.0
689 Content-Transfer-Encoding: 7bit
966 Content-Transfer-Encoding: 7bit
690 Subject: [PATCH 1 of 2] a
967 Subject: [PATCH 1 of 2] a
691 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
968 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
692 Message-Id: <8580ff50825a50c8f716.61@
969 Message-Id: <8580ff50825a50c8f716.61@
693 In-Reply-To: <patchbomb.60@
970 In-Reply-To: <patchbomb.60@
694 References: <patchbomb.60@
971 References: <patchbomb.60@
695 User-Agent: Mercurial-patchbomb
972 User-Agent: Mercurial-patchbomb
696 Date: Thu, 01 Jan 1970 00:01:01 +0000
973 Date: Thu, 01 Jan 1970 00:01:01 +0000
697 From: quux
974 From: quux
698 To: foo
975 To: foo
699 Cc: bar
976 Cc: bar
700
977
701 # HG changeset patch
978 # HG changeset patch
702 # User test
979 # User test
703 # Date 1 0
980 # Date 1 0
704 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
981 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
705 # Parent 0000000000000000000000000000000000000000
982 # Parent 0000000000000000000000000000000000000000
706 a
983 a
707
984
708 diff -r 000000000000 -r 8580ff50825a a
985 diff -r 000000000000 -r 8580ff50825a a
709 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
986 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
710 +++ b/a Thu Jan 01 00:00:01 1970 +0000
987 +++ b/a Thu Jan 01 00:00:01 1970 +0000
711 @@ -0,0 +1,1 @@
988 @@ -0,0 +1,1 @@
712 +a
989 +a
713
990
714 Displaying [PATCH 2 of 2] b ...
991 Displaying [PATCH 2 of 2] b ...
715 Content-Type: text/plain; charset="us-ascii"
992 Content-Type: text/plain; charset="us-ascii"
716 MIME-Version: 1.0
993 MIME-Version: 1.0
717 Content-Transfer-Encoding: 7bit
994 Content-Transfer-Encoding: 7bit
718 Subject: [PATCH 2 of 2] b
995 Subject: [PATCH 2 of 2] b
719 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
996 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
720 Message-Id: <97d72e5f12c7e84f8506.62@
997 Message-Id: <97d72e5f12c7e84f8506.62@
721 In-Reply-To: <patchbomb.60@
998 In-Reply-To: <patchbomb.60@
722 References: <patchbomb.60@
999 References: <patchbomb.60@
723 User-Agent: Mercurial-patchbomb
1000 User-Agent: Mercurial-patchbomb
724 Date: Thu, 01 Jan 1970 00:01:02 +0000
1001 Date: Thu, 01 Jan 1970 00:01:02 +0000
725 From: quux
1002 From: quux
726 To: foo
1003 To: foo
727 Cc: bar
1004 Cc: bar
728
1005
729 # HG changeset patch
1006 # HG changeset patch
730 # User test
1007 # User test
731 # Date 2 0
1008 # Date 2 0
732 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1009 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
733 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1010 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
734 b
1011 b
735
1012
736 diff -r 8580ff50825a -r 97d72e5f12c7 b
1013 diff -r 8580ff50825a -r 97d72e5f12c7 b
737 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1014 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
738 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1015 +++ b/b Thu Jan 01 00:00:02 1970 +0000
739 @@ -0,0 +1,1 @@
1016 @@ -0,0 +1,1 @@
740 +b
1017 +b
741
1018
742 % tagging csets
1019 % tagging csets
743 % test inline for single named patch
1020 % test inline for single named patch
744 This patch series consists of 1 patches.
1021 This patch series consists of 1 patches.
745
1022
746
1023
747 Displaying [PATCH] test ...
1024 Displaying [PATCH] test ...
748 Content-Type: multipart/mixed; boundary="===
1025 Content-Type: multipart/mixed; boundary="===
749 MIME-Version: 1.0
1026 MIME-Version: 1.0
750 Subject: [PATCH] test
1027 Subject: [PATCH] test
751 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
1028 X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
752 Message-Id: <ff2c9fa2018b15fa74b3.60@
1029 Message-Id: <ff2c9fa2018b15fa74b3.60@
753 User-Agent: Mercurial-patchbomb
1030 User-Agent: Mercurial-patchbomb
754 Date: Thu, 01 Jan 1970 00:01:00 +0000
1031 Date: Thu, 01 Jan 1970 00:01:00 +0000
755 From: quux
1032 From: quux
756 To: foo
1033 To: foo
757 Cc: bar
1034 Cc: bar
758
1035
759 --===
1036 --===
760 Content-Type: text/x-patch; charset="us-ascii"
1037 Content-Type: text/x-patch; charset="us-ascii"
761 MIME-Version: 1.0
1038 MIME-Version: 1.0
762 Content-Transfer-Encoding: 7bit
1039 Content-Transfer-Encoding: 7bit
763 Content-Disposition: inline; filename=two.diff
1040 Content-Disposition: inline; filename=two.diff
764
1041
765 # HG changeset patch
1042 # HG changeset patch
766 # User test
1043 # User test
767 # Date 3 0
1044 # Date 3 0
768 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
1045 # Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f
769 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1046 # Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9
770 c
1047 c
771
1048
772 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
1049 diff -r 97d72e5f12c7 -r ff2c9fa2018b c
773 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1050 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
774 +++ b/c Thu Jan 01 00:00:03 1970 +0000
1051 +++ b/c Thu Jan 01 00:00:03 1970 +0000
775 @@ -0,0 +1,1 @@
1052 @@ -0,0 +1,1 @@
776 +c
1053 +c
777
1054
778 --===
1055 --===
779 % test inline for multiple named/unnamed patches
1056 % test inline for multiple named/unnamed patches
780 This patch series consists of 2 patches.
1057 This patch series consists of 2 patches.
781
1058
782
1059
783 Write the introductory message for the patch series.
1060 Write the introductory message for the patch series.
784
1061
785
1062
786 Displaying [PATCH 0 of 2] test ...
1063 Displaying [PATCH 0 of 2] test ...
787 Content-Type: text/plain; charset="us-ascii"
1064 Content-Type: text/plain; charset="us-ascii"
788 MIME-Version: 1.0
1065 MIME-Version: 1.0
789 Content-Transfer-Encoding: 7bit
1066 Content-Transfer-Encoding: 7bit
790 Subject: [PATCH 0 of 2] test
1067 Subject: [PATCH 0 of 2] test
791 Message-Id: <patchbomb.60@
1068 Message-Id: <patchbomb.60@
792 User-Agent: Mercurial-patchbomb
1069 User-Agent: Mercurial-patchbomb
793 Date: Thu, 01 Jan 1970 00:01:00 +0000
1070 Date: Thu, 01 Jan 1970 00:01:00 +0000
794 From: quux
1071 From: quux
795 To: foo
1072 To: foo
796 Cc: bar
1073 Cc: bar
797
1074
798
1075
799 Displaying [PATCH 1 of 2] a ...
1076 Displaying [PATCH 1 of 2] a ...
800 Content-Type: multipart/mixed; boundary="===
1077 Content-Type: multipart/mixed; boundary="===
801 MIME-Version: 1.0
1078 MIME-Version: 1.0
802 Subject: [PATCH 1 of 2] a
1079 Subject: [PATCH 1 of 2] a
803 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
1080 X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
804 Message-Id: <8580ff50825a50c8f716.61@
1081 Message-Id: <8580ff50825a50c8f716.61@
805 In-Reply-To: <patchbomb.60@
1082 In-Reply-To: <patchbomb.60@
806 References: <patchbomb.60@
1083 References: <patchbomb.60@
807 User-Agent: Mercurial-patchbomb
1084 User-Agent: Mercurial-patchbomb
808 Date: Thu, 01 Jan 1970 00:01:01 +0000
1085 Date: Thu, 01 Jan 1970 00:01:01 +0000
809 From: quux
1086 From: quux
810 To: foo
1087 To: foo
811 Cc: bar
1088 Cc: bar
812
1089
813 --===
1090 --===
814 Content-Type: text/x-patch; charset="us-ascii"
1091 Content-Type: text/x-patch; charset="us-ascii"
815 MIME-Version: 1.0
1092 MIME-Version: 1.0
816 Content-Transfer-Encoding: 7bit
1093 Content-Transfer-Encoding: 7bit
817 Content-Disposition: inline; filename=t2-1.patch
1094 Content-Disposition: inline; filename=t2-1.patch
818
1095
819 # HG changeset patch
1096 # HG changeset patch
820 # User test
1097 # User test
821 # Date 1 0
1098 # Date 1 0
822 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
1099 # Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab
823 # Parent 0000000000000000000000000000000000000000
1100 # Parent 0000000000000000000000000000000000000000
824 a
1101 a
825
1102
826 diff -r 000000000000 -r 8580ff50825a a
1103 diff -r 000000000000 -r 8580ff50825a a
827 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1104 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
828 +++ b/a Thu Jan 01 00:00:01 1970 +0000
1105 +++ b/a Thu Jan 01 00:00:01 1970 +0000
829 @@ -0,0 +1,1 @@
1106 @@ -0,0 +1,1 @@
830 +a
1107 +a
831
1108
832 --===
1109 --===
833 Displaying [PATCH 2 of 2] b ...
1110 Displaying [PATCH 2 of 2] b ...
834 Content-Type: multipart/mixed; boundary="===
1111 Content-Type: multipart/mixed; boundary="===
835 MIME-Version: 1.0
1112 MIME-Version: 1.0
836 Subject: [PATCH 2 of 2] b
1113 Subject: [PATCH 2 of 2] b
837 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1114 X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
838 Message-Id: <97d72e5f12c7e84f8506.62@
1115 Message-Id: <97d72e5f12c7e84f8506.62@
839 In-Reply-To: <patchbomb.60@
1116 In-Reply-To: <patchbomb.60@
840 References: <patchbomb.60@
1117 References: <patchbomb.60@
841 User-Agent: Mercurial-patchbomb
1118 User-Agent: Mercurial-patchbomb
842 Date: Thu, 01 Jan 1970 00:01:02 +0000
1119 Date: Thu, 01 Jan 1970 00:01:02 +0000
843 From: quux
1120 From: quux
844 To: foo
1121 To: foo
845 Cc: bar
1122 Cc: bar
846
1123
847 --===
1124 --===
848 Content-Type: text/x-patch; charset="us-ascii"
1125 Content-Type: text/x-patch; charset="us-ascii"
849 MIME-Version: 1.0
1126 MIME-Version: 1.0
850 Content-Transfer-Encoding: 7bit
1127 Content-Transfer-Encoding: 7bit
851 Content-Disposition: inline; filename=one.patch
1128 Content-Disposition: inline; filename=one.patch
852
1129
853 # HG changeset patch
1130 # HG changeset patch
854 # User test
1131 # User test
855 # Date 2 0
1132 # Date 2 0
856 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
1133 # Node ID 97d72e5f12c7e84f85064aa72e5a297142c36ed9
857 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
1134 # Parent 8580ff50825a50c8f716709acdf8de0deddcd6ab
858 b
1135 b
859
1136
860 diff -r 8580ff50825a -r 97d72e5f12c7 b
1137 diff -r 8580ff50825a -r 97d72e5f12c7 b
861 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1138 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
862 +++ b/b Thu Jan 01 00:00:02 1970 +0000
1139 +++ b/b Thu Jan 01 00:00:02 1970 +0000
863 @@ -0,0 +1,1 @@
1140 @@ -0,0 +1,1 @@
864 +b
1141 +b
865
1142
866 --===
1143 --===
867 % test inreplyto
1144 % test inreplyto
868 This patch series consists of 1 patches.
1145 This patch series consists of 1 patches.
869
1146
870
1147
871 Displaying [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b ...
1148 Displaying [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b ...
872 Content-Type: text/plain; charset="us-ascii"
1149 Content-Type: text/plain; charset="us-ascii"
873 MIME-Version: 1.0
1150 MIME-Version: 1.0
874 Content-Transfer-Encoding: 7bit
1151 Content-Transfer-Encoding: 7bit
875 Subject: [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b
1152 Subject: [PATCH] Added tag two, two.diff for changeset ff2c9fa2018b
876 X-Mercurial-Node: 2c502b2db30e1ddd5e4ecabd68d9002f6c77a5a3
1153 X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6
877 Message-Id: <2c502b2db30e1ddd5e4e.60@
1154 Message-Id: <e317db6a6f288748d1f6.60@
878 In-Reply-To: baz
1155 In-Reply-To: baz
879 References: baz
1156 References: baz
880 User-Agent: Mercurial-patchbomb
1157 User-Agent: Mercurial-patchbomb
881 Date: Thu, 01 Jan 1970 00:01:00 +0000
1158 Date: Thu, 01 Jan 1970 00:01:00 +0000
882 From: quux
1159 From: quux
883 To: foo
1160 To: foo
884 Cc: bar
1161 Cc: bar
885
1162
886 # HG changeset patch
1163 # HG changeset patch
887 # User test
1164 # User test
888 # Date 0 0
1165 # Date 0 0
889 # Node ID 2c502b2db30e1ddd5e4ecabd68d9002f6c77a5a3
1166 # Node ID e317db6a6f288748d1f6cb064f3810fcba66b1b6
890 # Parent 91c0d1bdb4bc9cfd3b38a53a5ec53e9ae412a275
1167 # Parent eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
891 Added tag two, two.diff for changeset ff2c9fa2018b
1168 Added tag two, two.diff for changeset ff2c9fa2018b
892
1169
893 diff -r 91c0d1bdb4bc -r 2c502b2db30e .hgtags
1170 diff -r eae5fcf795ee -r e317db6a6f28 .hgtags
894 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
1171 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
895 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
1172 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
896 @@ -2,3 +2,5 @@
1173 @@ -2,3 +2,5 @@
897 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
1174 8580ff50825a50c8f716709acdf8de0deddcd6ab zero.foo
898 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
1175 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one
899 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
1176 97d72e5f12c7e84f85064aa72e5a297142c36ed9 one.patch
900 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two
1177 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two
901 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff
1178 +ff2c9fa2018b15fa74b33363bda9527323e2a99f two.diff
902
1179
General Comments 0
You need to be logged in to leave comments. Login now