thread merge/split proposal

Subject: thread merge/split proposal

Date: Mon, 04 Apr 2016 14:14:27 -0300

To: Notmuch Mail

Cc:

From: Daniel Kahn Gillmor


Some people i communicate with regularly break threads when
replying. This is a major pain.  I'd like to be able to tell notmuch
(perhaps programmatically) how to connect these threads.

I know we've talked about being able to join threads, but no one has
made such a change in notmuch, afaict.  One of the major concerns people
have about joining threads is that the action seems irreversible.

If it were reversible (if it were easy to split a joined thread back
into its original threads), maybe it would be less scary to have a "join
thread" implementation?

i see two ways to do this:

 a) store an "original thread" attribute for each message that has been
    joined, and just reset it when an unjoin is requested

or

 b) when an unjoin is requested, do a graph analysis of every message in
    the thread's In-Reply-To and References headers, and recreate
    distinct threads from the connected components.


the problem with (a) is that once threads are joined, and a new message
is added to the joined thread, it's not clear which it should have as
its "original thread".

So what do folks think about (b)?  If that was implemented, would it be
less-scary to have a "join thread" operation?

From the CLI, it would look something like:

  notmuch join-threads THREAD_A THREAD_B [ THREAD_C ... ]
  notmuch split-thread THREAD_X

What do people think about this approach?

     --dkg

signature.asc (application/pgp-signature)

Thread: