Re: Threading bug due to a duplicated reference
On Wed, 27 Jul 2005, Vincent Lefevre wrote:
> On 2005-07-27 18:41:41 +0900, TAKAHASHI Tamotsu wrote:
> > * Tue Jul 26 2005 Vincent Lefevre <vincent@xxxxxxxxxx>
> > > On 2005-07-25 09:32:25 +0900, TAKAHASHI Tamotsu wrote:
> > > > I don't object to you, but I want to know your idea about this:
> > > > Well, my rm_dupref patch removes the _older_ one of duplicated refs.
> > > > For example, mine makes a tree "a->b->c->b->d" to be "a->c->b->d".
> > >
> > > I don't understand what you mean. Could you give the DAG?
> >
> > Well, okay (though I don't know what DAG stands for :)
>
> Directed acyclic graph (you could see that on FOLDOC or VERA :).
Thanks you!
> IMHO, the order of the references shouldn't matter (or very slightly,
> e.g. when there is a tie between various solutions because of missing
> information or whatever, such as missing messages). Indeed, when one
> replies to several messages, the references are concatenated (with or
> without some clean-up).
Good point. I didn't consider such cases.
But I'm afraid your idea requires much work.
At least it seems too hard for me to implement such threading.
> Also, perhaps In-Reply-To could have a higher priority (the threading
> model would deal with weighted graphs).
Yes.
> > ----------------------
> > References: <c@c> <b@b>
> > B
> > |->C
> > `->D (son of B)
> > ----------------------
> >
> > and
> >
> > ----------------------
> > References: <b@b> <c@c>
> > B
> > `->C
> > `->D (son of C)
> > ----------------------
> >
> > Both my (rm_dupref) patch and TLR's (s/break/continue/) patch
> > implement the former.
>
> I think this is incorrect, as the former doesn't show the relation
> between C and D. The latter shows every relation, and this is the
> solution obtained from the DAG.
Yes, the former tree is wrong (especially in this case).
So the DAG sounds good if it doesn't need complex code
or slow algorithms.
The wrong tree is due to just the lack of a single
In-Reply-To in D. Mutt makes a correct tree if D has
"In-Reply-To: <c@c>". (But mutt makes the wrong tree
if D has "In-Reply-To: <not@there>". So your idea --
the DAG -- is the best in correctness.)
If we don't use the DAG for any reason, the former
"References" seems better than the latter for me
because <b@b> is the last entry in D's original
References.
This is hack-ish, but maybe the most realistic.
Regards,
--
tamo