# HG changeset patch # User Thomas Arendsen Hein # Date 1198858257 -3600 # Node ID 3aa0af7d539d1d761aa178dde6fc7f284a302537 # Parent c5793dada959ddd46b6bb301fd07d2b004706267# Parent 43ee007dbd0ead23dc3a88deb3d8eec8de1b6a98 merge with crew diff -r c5793dada959 -r 3aa0af7d539d hgext/patchbomb.py --- a/hgext/patchbomb.py Fri Dec 28 17:10:25 2007 +0100 +++ b/hgext/patchbomb.py Fri Dec 28 17:10:57 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) @@ -262,6 +262,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 = [] @@ -308,13 +317,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 @@ -324,9 +327,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 c5793dada959 -r 3aa0af7d539d tests/test-patchbomb --- a/tests/test-patchbomb Fri Dec 28 17:10:25 2007 +0100 +++ b/tests/test-patchbomb Fri Dec 28 17:10:57 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 <