Just adding that we have this problem occasionally. Would be nice of Outlook wasn't such a broken email client. :(
Yea, I don't know of any better solution.. I don't think Outlook has any other marker for reply addresses. Thanks, Jake On Thu, 2014-02-06 at 14:49 -0800, Markus Mayer wrote: > Make sure we don't attempt to search for a patch in a reply e-mail. > There are MUAs out there who leave the quoted e-mail intact without > prepending quote characters such as ">" at the beginning of each line. > > When that happens, parse_patch() thinks the quoted patch is new. The > result are multiple database entries containing the same patch (one for > each such reply) when one would really expect a consolidated thread > containing the entire discussion and only one copy of the patch. > > Signed-off-by: Markus Mayer <[email protected]> > --- > This problem is mainly caused when replies to patches are sent using > Outlook. > > The approach below seems to work, although there is the downside that > it relies on English MUA settings. If a mail client translates "Re:" to > some other string such as "AW:" the proposed code will not detect that > the e-mail in question is a reply. (Although it wouldn't be any worse > than it is now.) > > To avoid this, I tried using the presence of "In-Reply-To:" and > "References:" headers to detect a reply, but "git send-email" inserts > references into patches that aren't replies (e.g. v2 of a patch > referencing v1), which then leads to the opposite problem: mails being > categorized as replies when they are not. > > So, checking for "Re:" still seems to be the better option. Please let > me know your thoughts. > > apps/patchwork/bin/parsemail.py | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/apps/patchwork/bin/parsemail.py b/apps/patchwork/bin/parsemail.py > index b6eb97a..405fb69 100755 > --- a/apps/patchwork/bin/parsemail.py > +++ b/apps/patchwork/bin/parsemail.py > @@ -151,6 +151,8 @@ def find_content(project, mail): > patchbuf = None > commentbuf = '' > pullurl = None > + subject = mail.get('Subject') > + is_reply = (subject.lower().find("re:") == 0) > > for part in mail.walk(): > if part.get_content_maintype() != 'text': > @@ -185,8 +187,8 @@ def find_content(project, mail): > patch = None > comment = None > > - if pullurl or patchbuf: > - name = clean_subject(mail.get('Subject'), [project.linkname]) > + if not is_reply and (pullurl or patchbuf): > + name = clean_subject(subject, [project.linkname]) > patch = Patch(name = name, pull_url = pullurl, content = patchbuf, > date = mail_date(mail), headers = mail_headers(mail)) > _______________________________________________ Patchwork mailing list [email protected] https://lists.ozlabs.org/listinfo/patchwork
