[Dovecot] sorting question
Hi,
If I understand the thread sorting algorithm correctly (from draft-ietf-imapext-sort-17.txt and the code), it will sort like this (where I use numbers instead of dates with higher numbers being newer mails)
4 10 3 11 2 12 1 13
etc into all the lower levels. Thunderbird will actually sort this like this:
1 13 2 12 3 11 4 10
where threads are sorted by the newest child in them. Now, I am thinking that evolution simply uses dovecot's THREAD feature and doesn't implement anything itself, so that if I wanted to have that kind of threading, I'd have to implement it in dovecot. Would this be easy? I'm thinking that I should just treat all nodes as if they were dummy nodes in sort_root_nodes, but that only fixes the first level afaict, because later dates are not propagated up. Essentially, I think what the algorithm tb uses does is not use a nodes date as it's sorting criterion, but it's newest child, and apply this rule recursively.
Does anyone else think this feature would be useful? I regularly end up almost missing mail because it is sorted at such a low position and I don't see the thread at all..
johannes
On Fri, 2005-07-08 at 13:21 +0200, Johannes Berg wrote:
If I understand the thread sorting algorithm correctly (from draft-ietf-imapext-sort-17.txt and the code), it will sort like this .. where threads are sorted by the newest child in them. Now, I am thinking that evolution simply uses dovecot's THREAD feature and doesn't implement anything itself, so that if I wanted to have that kind of threading, I'd have to implement it in dovecot. Would this be easy? I'm thinking that I should just treat all nodes as if they were dummy nodes in sort_root_nodes, but that only fixes the first level afaict, because later dates are not propagated up. Essentially, I think what the algorithm tb uses does is not use a nodes date as it's sorting criterion, but it's newest child, and apply this rule recursively.
Does anyone else think this feature would be useful? I regularly end up almost missing mail because it is sorted at such a low position and I don't see the thread at all..
Unfortunately Evolution sorts this way internally, otherwise I would have implemented that kind of better threading long time ago as an (RFC-breaking) option.
There have been some talk in past in IMAP mailinglists about adding some options to THREAD command to change its behavior in different ways. Would be nice, but not a very high priority for me..
On Tue, 2005-07-12 at 18:59 +0300, Timo Sirainen wrote:
Unfortunately Evolution sorts this way internally, otherwise I would have implemented that kind of better threading long time ago as an (RFC-breaking) option.
Ah. Ok, I'll go file a bug report against Evolution. It's been really bothering me lately.
There have been some talk in past in IMAP mailinglists about adding some options to THREAD command to change its behavior in different ways. Would be nice, but not a very high priority for me..
Ah, yeah, but then until it is supported...
Thanks, johannes
Johannes Berg wrote:
Hi,
If I understand the thread sorting algorithm correctly (from draft-ietf-imapext-sort-17.txt and the code), it will sort like this (where I use numbers instead of dates with higher numbers being newer mails)
4 10 3 11 2 12 1 13
etc into all the lower levels. Thunderbird will actually sort this like this:
1 13 2 12 3 11 4 10
...
You're lucky.
I've just installed Dovecot on a Debian Sarge machine here and am seeing some very strange thread sorting.
In Thunderbird on both Fedora and Debian clients, my threads served up by Dovecot look like this:
|-11
| -12 |-2 |-3 |-4 |
-5
| -6 |
-7
| -8 |-1
-9
`-10
Where the exact same threads served by Sendmail/imap look like this:
|-1
|-2
|-3
|-4
| -5 |
-6
| -7 |
-8
|-9
| -10 |-11 |
-12
Squirrelmail shows the threads correctly in both cases too, so I suspect there might be something funny going on with how Thunderbird handles Maildir threads. I notice that Dovecot doesn't support the THREAD=ORDEREDSUBJECT capability, might that have something to do with it?
thanks, Greg
participants (4)
-
Greg Trounson
-
Johannes Berg
-
Jordan Hayes
-
Timo Sirainen