Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 3C3674196F0 for ; Fri, 9 Apr 2010 12:18:37 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: 0.801 X-Spam-Level: X-Spam-Status: No, score=0.801 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001] autolearn=ham Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P0bfVut8MFss for ; Fri, 9 Apr 2010 12:18:36 -0700 (PDT) Received: from mail-gw0-f53.google.com (mail-gw0-f53.google.com [74.125.83.53]) by olra.theworths.org (Postfix) with ESMTP id 040C1431FC1 for ; Fri, 9 Apr 2010 12:18:35 -0700 (PDT) Received: by gwj20 with SMTP id 20so1890813gwj.26 for ; Fri, 09 Apr 2010 12:18:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:received:message-id:subject :from:to:content-type:content-transfer-encoding; bh=eDTHJqPfPNE8seTBF2SZVaGq9S4mln+XrMm+yWMWrkw=; b=HDUKdJVKCL7ZwwWyJCYiFZUOwEN7baEuccnAtQcRxK3ZJtatrw3A/E8ktoAAgj5yPp cdnThno0XbNacdXK5CO+JyMgXh3023R2Tiajmla2ZC9SyeJWgMw/UJZWZv3JytvKp0X7 9fLkWNWZOq8lQe1hDDKE0VVjg11/Sts8Jm478= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; b=fJdys1Go8tcsafjgv0PB4owAoh6EO/2oTipVs3rVN8BoJcOSl9PZElP2QH8zS08q4n fyMs7cC/j77fzLSOF861ngL5G8RqI7vgmkfU1UWJ9+9gbKiCL9wOpCqs/c0/s6E/JyIt 2JaHlJFgZPUK8OKsT1a/MK3/pGl+rurzLRkK8= MIME-Version: 1.0 Sender: anthony.j.towns@gmail.com Received: by 10.90.114.1 with HTTP; Fri, 9 Apr 2010 12:18:35 -0700 (PDT) In-Reply-To: <87hbnktx1c.fsf@yoom.home.cworth.org> References: <87hbnktx1c.fsf@yoom.home.cworth.org> Date: Sat, 10 Apr 2010 05:18:35 +1000 X-Google-Sender-Auth: eef822b8ae885882 Received: by 10.91.163.17 with SMTP id q17mr151746ago.36.1270840715496; Fri, 09 Apr 2010 12:18:35 -0700 (PDT) Message-ID: Subject: Re: Initial attempt at a "merge window" for notmuch From: Anthony Towns To: notmuch@notmuchmail.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 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: Fri, 09 Apr 2010 19:18:37 -0000 On Sat, Apr 10, 2010 at 02:23, Carl Worth wrote: > 3. Ability to easily post search results to a web page. Isn't that a job for "noneatall" [0] -- maybe it just needs the ability to export to static pages, that can be rsync'ed somewhere? [0] http://github.com/dme/noneatall > 4. Fancy support for thread- vs. message-based search matches. > We've talked about supporting a "muted" tag to make obnoxious > threads disappear entirely. The idea we have there is a tag on a > message, and then support for searches which compute set-theoretic > operations based on sets of threads. Is that an argument for tags on a thread rather than a message? With a message mute tag, if you happen to delete the single message you've tagged muted (maybe you killfile the sender of that message), suddenly the whole thread reappears, which doesn't sound entirely desirable. > =A02. The ability to split a thread. > =A0 =A0 I know I argued against this previously, but I know that "Plans f= or > =A0 =A0 the 0.2 release" contains multiple independent topics, and I'd > =A0 =A0 really like to be able to track those separately. An MUA that did that well (or just effectively) would be massively fantasti= c. Perhaps you could do it by associating threads with any message, so if you've got an announcement A, with three followups, B, C and D, of which C and D are interesting and novel subthreads, you could have thread:00001 start at A and include everything, thread:00002 manually pointed at C and include both its parents (A) and any children, but not any siblings/cousins (B/D), and thread:00003 manually pointed at D and behave likewise (including A, any responses to D, but not B, C or any replies to B or C). I don't know how you'd handle a mail, E, that came in that following up to C though -- do you just report thread:00001 as having new mail, or just thread:00002, or both of them? What if F comes in that simultaneously replies to E and D? (Personally, I could probably be comfortable with any of those behaviours) > =A0 =A0 For my merge window, I also want something that can't be obtained > =A0 =A0 today. I want to see all threads that contain at least one messag= e > =A0 =A0 that matches my date range and at least one message that doesn't > =A0 =A0 have the "merged" or "postponed" tag. That is, I can merge a > =A0 =A0 feature and mark it "merged", but if someone replies later notici= ng > =A0 =A0 a defect in the patch I merged, then I want that thread to reappe= ar > =A0 =A0 in my search results. But my current date restriction prevents > =A0 =A0 that. The above hypothetical features could let you do: # create new threads at messages that are marked as postponed or merged notmuch newthread -- not is:threadroot \( tag:merged or tag:postponed \= ) # assume threads get the same tags as their "root" message, so that # any messages in the above new threads will automagically match on # threadtag:merged or threadtag:postponed. Thus: notmuch search threadtag:merged 123456..123789 That's abusing subthreads as a poor man's set. Not really convinced that's a good idea, but what the hey... Something to think about maybe. Cheers, aj --=20 Anthony Towns