mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 23:38:50 +03:00
merge with crew
This commit is contained in:
commit
d63fbb0105
@ -216,7 +216,7 @@ def patchbomb(ui, repo, *revs, **opts):
|
||||
tmpfn = os.path.join(tmpdir, 'bundle')
|
||||
try:
|
||||
commands.bundle(ui, repo, tmpfn, dest, **opts)
|
||||
return open(tmpfn).read()
|
||||
return open(tmpfn, 'rb').read()
|
||||
finally:
|
||||
try:
|
||||
os.unlink(tmpfn)
|
||||
@ -262,6 +262,15 @@ def patchbomb(ui, repo, *revs, **opts):
|
||||
def genmsgid(id):
|
||||
return '<%s.%s@%s>' % (id[:20], int(start_time[0]), socket.getfqdn())
|
||||
|
||||
def getdescription(body, sender):
|
||||
if opts['desc']:
|
||||
body = open(opts['desc']).read()
|
||||
else:
|
||||
ui.write(_('\nWrite the introductory message for the '
|
||||
'patch series.\n\n'))
|
||||
body = ui.edit(body, sender)
|
||||
return body
|
||||
|
||||
def getexportmsgs():
|
||||
patches = []
|
||||
|
||||
@ -308,13 +317,7 @@ def patchbomb(ui, repo, *revs, **opts):
|
||||
d = cdiffstat(_('Final summary:\n'), jumbo)
|
||||
if d: body = '\n' + d
|
||||
|
||||
if opts['desc']:
|
||||
body = open(opts['desc']).read()
|
||||
else:
|
||||
ui.write(_('\nWrite the introductory message for the '
|
||||
'patch series.\n\n'))
|
||||
body = ui.edit(body, sender)
|
||||
|
||||
body = getdescription(body, sender)
|
||||
msg = email.MIMEText.MIMEText(body)
|
||||
msg['Subject'] = subj
|
||||
|
||||
@ -324,9 +327,8 @@ def patchbomb(ui, repo, *revs, **opts):
|
||||
def getbundlemsgs(bundle):
|
||||
subj = (opts['subject']
|
||||
or prompt('Subject:', default='A bundle for your repository'))
|
||||
ui.write(_('\nWrite the introductory message for the bundle.\n\n'))
|
||||
body = ui.edit('', sender)
|
||||
|
||||
body = getdescription('', sender)
|
||||
msg = email.MIMEMultipart.MIMEMultipart()
|
||||
if body:
|
||||
msg.attach(email.MIMEText.MIMEText(body, 'plain'))
|
||||
|
@ -1,20 +1,46 @@
|
||||
#!/bin/sh
|
||||
|
||||
fixheaders()
|
||||
{
|
||||
sed -e 's/\(Message-Id:.*@\).*/\1/' \
|
||||
-e 's/\(In-Reply-To:.*@\).*/\1/' \
|
||||
-e 's/===.*/===/'
|
||||
}
|
||||
|
||||
echo "[extensions]" >> $HGRCPATH
|
||||
echo "patchbomb=" >> $HGRCPATH
|
||||
|
||||
hg init
|
||||
hg init t
|
||||
cd t
|
||||
echo a > a
|
||||
hg commit -Ama -d '1 0'
|
||||
|
||||
hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar tip | \
|
||||
sed -e 's/\(Message-Id:.*@\).*/\1/'
|
||||
fixheaders
|
||||
|
||||
echo b > b
|
||||
hg commit -Amb -d '2 0'
|
||||
|
||||
hg email --date '1970-1-1 0:2' -n -f quux -t foo -c bar -s test 0:tip | \
|
||||
sed -e 's/\(Message-Id:.*@\).*/\1/' | \
|
||||
sed -e 's/\(In-Reply-To:.*@\).*/\1/'
|
||||
fixheaders
|
||||
|
||||
hg email -m test.mbox -f quux -t foo -c bar -s test 0:tip
|
||||
|
||||
cd ..
|
||||
|
||||
hg clone -q t t2
|
||||
cd t2
|
||||
echo c > c
|
||||
hg commit -Amc -d '3 0'
|
||||
|
||||
cat > description <<EOF
|
||||
a multiline
|
||||
|
||||
description
|
||||
EOF
|
||||
|
||||
echo % test bundle and description
|
||||
hg email --date '1970-1-1 0:3' -n -f quux -t foo \
|
||||
-c bar -s test -r tip -b --desc description | \
|
||||
fixheaders
|
||||
|
||||
|
@ -107,3 +107,40 @@ Write the introductory message for the patch series.
|
||||
Writing [PATCH 0 of 2] test ...
|
||||
Writing [PATCH 1 of 2] a ...
|
||||
Writing [PATCH 2 of 2] b ...
|
||||
adding c
|
||||
% test bundle and description
|
||||
searching for changes
|
||||
|
||||
Displaying test ...
|
||||
Content-Type: multipart/mixed; boundary="===
|
||||
MIME-Version: 1.0
|
||||
Subject: test
|
||||
Message-Id: <patchbomb.180@
|
||||
Date: Thu, 01 Jan 1970 00:03:00 +0000
|
||||
From: quux
|
||||
To: foo
|
||||
Cc: bar
|
||||
|
||||
--===
|
||||
Content-Type: text/plain; charset="us-ascii"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
|
||||
a multiline
|
||||
|
||||
description
|
||||
|
||||
--===
|
||||
Content-Type: application/x-mercurial-bundle
|
||||
MIME-Version: 1.0
|
||||
Content-Disposition: attachment; filename="bundle.hg"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
SEcxMEJaaDkxQVkmU1nvR7I3AAAN////lFYQWj1/4HwRkdC/AywIAk0E4pfoSIIIgQCgGEQOcLAA
|
||||
2tA1VPyp4mkeoG0EaaPU0GTT1GjRiNPIg9CZGBqZ6UbU9J+KFU09DNUaGgAAAAAANAGgAAAAA1U8
|
||||
oGgAADQGgAANNANAAAAAAZipFLz3XoakCEQB3PVPyHJVi1iYkAAKQAZQGpQGZESInRnCFMqLDla2
|
||||
Bx3qfRQeA2N4lnzKkAmP8kR2asievLLXXebVU8Vg4iEBqcJNJAxIapSU6SM4888ZAciRG6MYAIEE
|
||||
SlIBpFisgGkyRjX//TMtfcUAEsGu56+YnE1OlTZmzKm8BSu2rvo4rHAYYaadIFFuTy0LYgIkgLVD
|
||||
sgVa2F19D1tx9+hgbAygLgQwaIqcDdgA4BjQgIiz/AEP72++llgDKhKducqodGE4B0ETqF3JFOFC
|
||||
Q70eyNw=
|
||||
--===
|
||||
|
Loading…
Reference in New Issue
Block a user