Mercurial > hg
changeset 11150:f66ca4431eb9
patchbomb: Reply-To support
From RFC 5322:
an optional reply-to field MAY also be included, which contains the field
name "Reply-To" and a comma-separated list of one or more addresses.
[...]
When the "Reply-To:" field is present, it indicates the address(es) to which
the author of the message suggests that replies be sent. In the absence of
the "Reply-To:" field, replies SHOULD by default be sent to the mailbox(es)
specified in the "From:" field unless otherwise specified by the person
composing the reply.
Reply-To addresses may be specified either via command line with --reply-to
or via the 'email' or 'patchbomb' sections of the config file.
author | Cédric Duval <cedricduval@free.fr> |
---|---|
date | Mon, 10 May 2010 22:06:28 +0200 |
parents | d3c1eddfdbcf |
children | c5c190822501 |
files | hgext/patchbomb.py tests/test-patchbomb tests/test-patchbomb.out |
diffstat | 3 files changed, 78 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/patchbomb.py Mon May 10 11:04:56 2010 -0500 +++ b/hgext/patchbomb.py Mon May 10 22:06:28 2010 +0200 @@ -34,6 +34,7 @@ to = recipient1, recipient2, ... cc = cc1, cc2, ... bcc = bcc1, bcc2, ... + reply-to = address1, address2, ... Use ``[patchbomb]`` as configuration section name if you need to override global ``[email]`` address settings. @@ -390,8 +391,9 @@ msgs = getpatchmsgs(list(getpatches(revs))) def getaddrs(opt, prpt=None, default=None): - if opts.get(opt): - return mail.addrlistencode(ui, opts.get(opt), _charsets, + addrs = opts.get(opt.replace('-', '_')) + if addrs: + return mail.addrlistencode(ui, addrs, _charsets, opts.get('test')) addrs = (ui.config('email', opt) or @@ -404,6 +406,7 @@ to = getaddrs('to', 'To') cc = getaddrs('cc', 'Cc', '') bcc = getaddrs('bcc') + replyto = getaddrs('reply-to') ui.write('\n') @@ -442,6 +445,8 @@ m['Cc'] = ', '.join(cc) if bcc: m['Bcc'] = ', '.join(bcc) + if replyto: + m['Reply-To'] = ', '.join(replyto) if opts.get('test'): ui.status(_('Displaying '), subj, ' ...\n') ui.flush() @@ -493,6 +498,7 @@ ('n', 'test', None, _('print messages that would be sent')), ('m', 'mbox', '', _('write messages to mbox file instead of sending them')), + ('', 'reply-to', [], _('email addresses replies should be sent to')), ('s', 'subject', '', _('subject of first message (intro or single patch)')), ('', 'in-reply-to', '',
--- a/tests/test-patchbomb Mon May 10 11:04:56 2010 -0500 +++ b/tests/test-patchbomb Mon May 10 22:06:28 2010 +0200 @@ -135,6 +135,14 @@ hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test \ -r 0:1 | fixheaders +echo "% test reply-to via config" +hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -r 2 \ + --config patchbomb.reply-to='baz@example.com' | fixheaders + +echo "% test reply-to via command line" +hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -r 2 \ + --reply-to baz --reply-to fred | fixheaders + echo "% tagging csets" hg tag -r0 zero zero.foo hg tag -r1 one one.patch
--- a/tests/test-patchbomb.out Mon May 10 11:04:56 2010 -0500 +++ b/tests/test-patchbomb.out Mon May 10 22:06:28 2010 +0200 @@ -1062,6 +1062,68 @@ @@ -0,0 +1,1 @@ +b +% test reply-to via config +This patch series consists of 1 patches. + + +Displaying [PATCH] test ... +Content-Type: text/plain; charset="us-ascii" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [PATCH] test +X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f +Message-Id: <ff2c9fa2018b15fa74b3.60@ +User-Agent: Mercurial-patchbomb +Date: Thu, 01 Jan 1970 00:01:00 +0000 +From: quux +To: foo +Cc: bar +Reply-To: baz@example.com + +# HG changeset patch +# User test +# Date 3 0 +# Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f +# Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 +c + +diff -r 97d72e5f12c7 -r ff2c9fa2018b c +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/c Thu Jan 01 00:00:03 1970 +0000 +@@ -0,0 +1,1 @@ ++c + +% test reply-to via command line +This patch series consists of 1 patches. + + +Displaying [PATCH] test ... +Content-Type: text/plain; charset="us-ascii" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [PATCH] test +X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f +Message-Id: <ff2c9fa2018b15fa74b3.60@ +User-Agent: Mercurial-patchbomb +Date: Thu, 01 Jan 1970 00:01:00 +0000 +From: quux +To: foo +Cc: bar +Reply-To: baz, fred + +# HG changeset patch +# User test +# Date 3 0 +# Node ID ff2c9fa2018b15fa74b33363bda9527323e2a99f +# Parent 97d72e5f12c7e84f85064aa72e5a297142c36ed9 +c + +diff -r 97d72e5f12c7 -r ff2c9fa2018b c +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/c Thu Jan 01 00:00:03 1970 +0000 +@@ -0,0 +1,1 @@ ++c + % tagging csets % test inline for single named patch This patch series consists of 1 patches.