Discussion:
[VM] Threading using subject
Uday Reddy
2012-05-12 20:39:27 UTC
Permalink
I was somewhat dismayed to discover a few days ago that the default value of
`vm-thread-using-subject' has been `t'. I had assumed that the default
value was `nil' and most people weren't using this feature.

The normal method for grouping messages into threads is using their
"In-Reply-To" and "References" headers. In the early days of email, these
headers were not common. The standards weren't very good and many mail
clients didn't bother to follow the standards that did exist. I also recall
that VM's threading code wasn't up to mark in the early days. So, we had to
resort to grouping messages by their subject.

By version 7.19, VM's threading code was pretty good and the Internet
standards also improved. It is now very rare to get messages without proper
headers. (Some exceptions do exist. Typically, messages generated software
- web sites or mailing list managers contain bad headers.)

So, I am wondering if I should change the default value of
`vm-thread-using-subject' to nil.

The reason for doing this is that reference-based threads and subject-based
threads conflict. Essentially, subject lines can change in the middle of
threads, which means that you can't tell the subject thread of a message
just by looking at its subject line. This makes VM's threading code very
complicated. I think the code for reference-based threads is essentially
perfect now. But subject-based threading has quite a few dark corners, some
that I know about and others I don't. So, if the majority of the users
don't use subject-based threads, then these problems won't affect them.

So, the question is, should we change the default value of
`vm-thread-using-subject' to nil?

Cheers,
Uday
Goran Uddeborg
2012-05-16 07:24:22 UTC
Permalink
Post by Uday Reddy
So, the question is, should we change the default value of
`vm-thread-using-subject' to nil?
Would just changing the default help? As long as the option is there,
I guess the code has to support it.

It is very rare for threading using subject to give any false hits, in
my experience. So I don't think it hurts.

At the same time, I don't really know how often it actually makes any
difference. Maybe it doesn't happen very often, as you say. In that
case, it wouldn't matter too much for it to go, either.

So I don't really have a strong opinion either way. But I don't see
the point of just changing the default. If it is obscure code you
want to get rid of, I would assume you would have to remove the option
altogether. Not just change its default.
r***@knighten.org
2012-05-16 08:47:35 UTC
Permalink
I don't much care about the default, but I would certainly hate to see
threading using subject be lost.
--
Robert L. Knighten
***@knighten.org
Uday Reddy
2012-05-16 09:02:50 UTC
Permalink
Post by Goran Uddeborg
Post by Uday Reddy
So, the question is, should we change the default value of
`vm-thread-using-subject' to nil?
Would just changing the default help? As long as the option is there,
I guess the code has to support it.
Yes, the code will continue to support it. But I could declare that
threading using subject does not work correctly, and people will need to use
it at their own risk. (I know that that warning is always on the box, but
that is more of a legalspeak.)

I might also impose some pain on the users, by pointing out when things go
wrong so that they can take care to make sure that things are working
properly before they do something critical, like deleting a thread or
forwarding a thread. I use an integrity checker for the threads-database in
my daily use so that I know when things go wrong. But the checker is turned
off for normal users at present.

My guess is that the need for thread-using-subject only arises these days
when we read newsgroups or mailing lists, whose servers often munge the mail
headers. Reference threads get broken as a result and subject threading can
be used to still get back some coherence. For normal email usage, on the
other hand, subject threading is rarely needed (unless you correspond
regularly with somebody that has a bad email client.)
Post by Goran Uddeborg
It is very rare for threading using subject to give any false hits, in
my experience. So I don't think it hurts.
Here are a couple of things that worry me. Assume that the threads database
is wrong, i.e., it includes in a thread a message that doesn't really belong
in the thread. Then,

1. If you delete a thread, then you might end up losing the message that you
you never intended to delete.

2. If you forward a thread to somebody, you might expose information that
should not have been exposed.

Ok, so that gives me an idea. The thread operations are where unsafety
might arise. So, I could "firewall" the thread operations so that they
don't do wrong things even if the threads database is inconsistent. I will
try and implement that.

Cheers,
Uday
Robert Marshall
2012-05-16 20:21:40 UTC
Permalink
Post by Uday Reddy
My guess is that the need for thread-using-subject only arises these
days when we read newsgroups or mailing lists, whose servers often
munge the mail headers. Reference threads get broken as a result and
subject threading can be used to still get back some coherence. For
normal email usage, on the other hand, subject threading is rarely
needed (unless you correspond regularly with somebody that has a bad
email client.)
I find it useful for automated monthly (and more frequent!) reminders
(you're on such & such email list) where the text is much the same and
you only want to keep one of them. Also regular cron jobs end up by
default together and I rather like that. But, yes, when someone sends me
an email with no subject and it gets threaded with everyone else who
hasn't filled in that field it gets a little frustrating.

Robert
--
La grenouille songe..dans son château d'eau
Links and things http://rmstar.blogspot.com/
Loading...