From 85c5bcd95056501d878065f7991c5a0373ee8740 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Tue, 5 Apr 2016 14:14:27 +2100 Subject: [PATCH] thread merge/split proposal --- 63/81e2b44b0289f08f1495ee218445a332615e5e | 116 ++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 63/81e2b44b0289f08f1495ee218445a332615e5e diff --git a/63/81e2b44b0289f08f1495ee218445a332615e5e b/63/81e2b44b0289f08f1495ee218445a332615e5e new file mode 100644 index 000000000..fbeb29942 --- /dev/null +++ b/63/81e2b44b0289f08f1495ee218445a332615e5e @@ -0,0 +1,116 @@ +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----- +--=-=-=-- -- 2.26.2