# HG changeset patch # User Patrick Mezard # Date 1198856804 -3600 # Node ID 43ee007dbd0ead23dc3a88deb3d8eec8de1b6a98 # Parent 75c2071385daea5bd23f0580b92a157292a42a51# Parent ea1016b32e948f57cd3de4bcad248197e91e4d43 Merge with crew-stable diff -r 75c2071385da -r 43ee007dbd0e hgext/patchbomb.py --- a/hgext/patchbomb.py Fri Dec 28 14:51:16 2007 +0100 +++ b/hgext/patchbomb.py Fri Dec 28 16:46:44 2007 +0100 @@ -216,7 +216,7 @@ 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) @@ -261,6 +261,15 @@ 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 = [] @@ -306,13 +315,7 @@ 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 @@ -322,9 +325,8 @@ 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')) diff -r 75c2071385da -r 43ee007dbd0e tests/test-patchbomb --- a/tests/test-patchbomb Fri Dec 28 14:51:16 2007 +0100 +++ b/tests/test-patchbomb Fri Dec 28 16:46:44 2007 +0100 @@ -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 <