Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id 671CA6DE0319 for ; Mon, 4 Apr 2016 10:14:46 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: -0.037 X-Spam-Level: X-Spam-Status: No, score=-0.037 tagged_above=-999 required=5 tests=[AWL=-0.037] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vFC9l1Ll-IPo for ; Mon, 4 Apr 2016 10:14:38 -0700 (PDT) Received: from che.mayfirst.org (che.mayfirst.org [209.234.253.108]) by arlo.cworth.org (Postfix) with ESMTP id 5DBF86DE02C2 for ; Mon, 4 Apr 2016 10:14:38 -0700 (PDT) Received: from fifthhorseman.net (dhcp-a320.meeting.ietf.org [31.133.163.32]) by che.mayfirst.org (Postfix) with ESMTPSA id E05E8F991 for ; Mon, 4 Apr 2016 13:14:35 -0400 (EDT) Received: by fifthhorseman.net (Postfix, from userid 1000) id E2C162018C; Mon, 4 Apr 2016 14:14:30 -0300 (BRT) From: Daniel Kahn Gillmor To: Notmuch Mail Subject: thread merge/split proposal User-Agent: Notmuch/0.21+124~gbf604e9 (http://notmuchmail.org) Emacs/24.5.1 (x86_64-pc-linux-gnu) Date: Mon, 04 Apr 2016 14:14:27 -0300 Message-ID: <87mvp9uwi4.fsf@alice.fifthhorseman.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Apr 2016 17:14:46 -0000 --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable 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=20the 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 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJXAqDzXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRFREIyRTc0RjU2RkNGMkI2NzI5N0I3MzUy NEVDRkY1QUZGNjgzNzBBAAoJECTs/1r/aDcKLKMP/0E0Y2uc0fLdK7V0JNLusGaw JKeNBj6QOFu9FR4eFvnqc2zmJYOsO5ZQ2ZVwz5MilEDNv5ZUieFPWBDCIybVZp6d YzLK2o00OSC9GWgbaWSktlDTmEu99JywIrlC+qDeoZEp0e1Fz0IJUuhxEm2fyT+5 vLwc/jMkbaxNTX4s6fF1xRr9nJ0boJtjULSaiKgX8IpS4M86vqygK9MbW+3DNWnk F5RdnQ6v8b376pmt6rWmgUSJPQZ55um6abCPbZkahmSzXrgKa6qmDE2v8L91Q2rD gp5MowUy36FfN6llwPc3qxnCcpDY9UFfXpdefloQ5mHYZpm51MU7ZDOyxiRatd6w rokQkD3K09bg4nl9vjEPwVhLCDMR7Wn5xLClJkLFhhAc8vS9/itYWDOK7nj6kXfY Zop1BPf0pn6563pQcVY38U5i8Ux3lJWSoE2GRmkqVdB1jAoOnH8oqViRKLA830eS ++GHidue3xIjG8gNPWbWlwpkoTN+JV6UGZtFOyKDlTBuT43MshpEhFIR/sa1nojo zteu74X0g3pkLQqWJpYX/y5fyOgQSgQAc0ZV/D1p0NK3+YQ26jFKmUeyTjMktMFx Ue5yY+ejNdrlkQE1rMms451TS8swy2HfZzOyZvOMExH60TX/a4KlhWVE1rU5n8lY FBUinh7JY3CJ3+GYcY8i =3MYb -----END PGP SIGNATURE----- --=-=-=--